Posts

class PostsService(client: PostsClient)

Service class for posts

Developers has option to use this service directly or use the Fider client.

create_post(request: CreatePostRequest) FiderAPIResponse[CreatePostResponse]

Create a new post

Example:

>>> from fiderpy.v1.resources.posts import request
>>> from fiderpy.v1.resources.posts.service import PostsService

>>> service = PostsService(client=PostsClient(http=http))
>>> request = CreatePostRequest(title="Test Post", description="This is a test post")
>>> response = service.create_post(request=request)
>>> response
FiderAPIResponse(
    message="Successfully created post!",
    data=CreatePostResponse(
        id=1,
        number=1,
        title="Test Post",
        slug="test-post"
    ),
    errors=None
)
Parameters:

requestfiderpy.v1.resources.posts.request.CreatePostRequest

Returns:

fiderpy.v1.utils.domain.FiderAPIResponse

get_post(request: GetPostRequest) FiderAPIResponse[Post]

Get a single post

Example:

>>> from fiderpy.v1.resources.posts import request
>>> from fiderpy.v1.resources.posts.service import PostsService

>>> service = PostsService(client=PostsClient(http=http))
>>> request = GetPostRequest(number=1)
>>> response = service.get_post(request=request)
>>> response
FiderAPIResponse(
    message="Successfully fetched data.",
    data=Post(
        id=1,
        number=1,
        title="Test Post",
        slug="test-post",
        description="This is a test post",
        created_at="2021-01-01T00:00:00Z",
        user=User(
            id=1,
            name="John Doe",
            role="user"
        ),
        has_voted=False,
        votes_count=0,
        comments_count=0,
        status="open",
        response=None,
        tags=["test"]
    ),
    errors=None
)
Parameters:

requestfiderpy.v1.resources.posts.request.GetPostRequest

Returns:

fiderpy.v1.utils.domain.FiderAPIResponse

get_posts(request: GetPostsRequest = GetPostsRequest(query=None, view='all', limit=30, tags=None)) FiderAPIResponse[list[Post]]

Get all posts

Example:

>>> from fiderpy.v1.resources.posts import request
>>> from fiderpy.v1.resources.posts.service import PostsService

>>> service = PostsService(client=PostsClient(http=http))
>>> request = GetPostsRequest(limit=10, query="test", view="all", tags=["test"])
>>> response = service.get_posts(request=request)
>>> response
FiderAPIResponse(
    message="Successfully fetched data.",
    data=[
        Post(
            id=1,
            number=1,
            title="Test Post",
            slug="test-post",
            description="This is a test post",
            created_at="2021-01-01T00:00:00Z",
            user=User(
                id=1,
                name="John Doe",
                role="admin"
            ),
            has_voted=False,
            votes_count=0,
            comments_count=0,
            status="open",
            response=None,
            tags=["test"]
        ),
    ],
    errors=None
)
Parameters:

requestfiderpy.v1.resources.posts.request.GetPostsRequest

Returns:

fiderpy.v1.utils.domain.FiderAPIResponse