1717
1818
1919class CommentsService :
20+ """Service class for comments
21+
22+ Developers has option to use this service directly or use the ``Fider`` client.
23+ """
24+
2025 def __init__ (self , client : "CommentsClient" ) -> None :
2126 self .client = client
2227
2328 @as_fider (GetCommentsResponseAdapter )
2429 def get_comments (
2530 self , request : request .GetCommentsRequest
2631 ) -> FiderAPIResponse [list [response .Comment ]]:
32+ """Get all comments for a post
33+
34+ Example:
35+
36+ .. code-block:: python
37+
38+ >>> from fiderpy.v1.resources.comments import request
39+ >>> from fiderpy.v1.resources.comments.service import CommentsService
40+
41+ >>> service = CommentsService(client=CommentsClient(http=http))
42+ >>> request = GetCommentsRequest(number=1)
43+ >>> response = service.get_comments(request=request)
44+ >>> response
45+ FiderAPIResponse(
46+ message="Successfully fetched data!",
47+ data=[
48+ Comment(
49+ id=1,
50+ content="This is a comment",
51+ created_at="2021-01-01T00:00:00Z",
52+ user=User(
53+ id=1,
54+ name="John Doe",
55+ role="user"
56+ )
57+ ),
58+ ],
59+ errors=None
60+ )
61+
62+ :param request: :class:`fiderpy.v1.resources.comments.request.GetCommentsRequest`
63+ :return: :class:`fiderpy.v1.utils.domain.FiderAPIResponse`
64+ """
2765 return self .client .get_comments (number = request .number )
2866
2967 @as_fider (GetCommentResponseAdapter )
3068 def get_comment (
3169 self , request : request .GetCommentRequest
3270 ) -> FiderAPIResponse [response .Comment ]:
71+ """Get a single comment
72+
73+ Example:
74+
75+ .. code-block:: python
76+
77+ >>> from fiderpy.v1.resources.comments import request
78+ >>> from fiderpy.v1.resources.comments.service import CommentsService
79+
80+ >>> service = CommentsService(client=CommentsClient(http=http))
81+ >>> request = GetCommentRequest(number=1, id=1)
82+ >>> response = service.get_comment(request=request)
83+ >>> response
84+ FiderAPIResponse(
85+ message="Successfully fetched data!",
86+ data=Comment(
87+ id=1,
88+ content="This is a comment",
89+ created_at="2021-01-01T00:00:00Z",
90+ user=User(
91+ id=1,
92+ name="John Doe",
93+ role="user"
94+ )
95+ ),
96+ errors=None
97+ )
98+
99+ :param request: :class:`fiderpy.v1.resources.comments.request.GetCommentRequest`
100+ :return: :class:`fiderpy.v1.utils.domain.FiderAPIResponse`
101+ """
33102 return self .client .get_comment (number = request .number , id = request .id )
34103
35104 @as_fider (CreateCommentResponseAdapter )
36105 def create_comment (
37106 self , request : request .CreateCommentRequest
38107 ) -> FiderAPIResponse [response .CreateCommentResponse ]:
108+ """Create a new comment
109+
110+ Example:
111+
112+ .. code-block:: python
113+
114+ >>> from fiderpy.v1.resources.comments import request
115+ >>> from fiderpy.v1.resources.comments.service import CommentsService
116+
117+ >>> service = CommentsService(client=CommentsClient(http=http))
118+ >>> request = CreateCommentRequest(number=1, content="This is a comment")
119+ >>> response = service.create_comment(request=request)
120+ >>> response
121+ FiderAPIResponse(
122+ message="Successfully created comment!",
123+ data=CreateCommentResponse(
124+ id=1,
125+ content="This is a comment",
126+ created_at="2021-01-01T00:00:00Z"
127+ ),
128+ errors=None
129+ )
130+
131+ :param request: :class:`fiderpy.v1.resources.comments.request.CreateCommentRequest`
132+ :return: :class:`fiderpy.v1.utils.domain.FiderAPIResponse`
133+ """
39134 request_data : RequestExtra = {
40135 "json" : {"content" : request .content },
41136 }
@@ -45,6 +140,28 @@ def create_comment(
45140 def edit_comment (
46141 self , request : request .EditCommentRequest
47142 ) -> FiderAPIResponse [dict ]:
143+ """Edit an existing comment
144+
145+ Example:
146+
147+ .. code-block:: python
148+
149+ >>> from fiderpy.v1.resources.comments import request
150+ >>> from fiderpy.v1.resources.comments.service import CommentsService
151+
152+ >>> service = CommentsService(client=CommentsClient(http=http))
153+ >>> request = EditCommentRequest(number=1, id=1, content="Updated comment")
154+ >>> response = service.edit_comment(request=request)
155+ >>> response
156+ FiderAPIResponse(
157+ message="Successfully updated comment!",
158+ data={},
159+ errors=None
160+ )
161+
162+ :param request: :class:`fiderpy.v1.resources.comments.request.EditCommentRequest`
163+ :return: :class:`fiderpy.v1.utils.domain.FiderAPIResponse`
164+ """
48165 request_data : RequestExtra = {
49166 "json" : {"content" : request .content },
50167 }
@@ -56,4 +173,26 @@ def edit_comment(
56173 def delete_comment (
57174 self , request : request .DeleteCommentRequest
58175 ) -> FiderAPIResponse [dict ]:
176+ """Delete a comment
177+
178+ Example:
179+
180+ .. code-block:: python
181+
182+ >>> from fiderpy.v1.resources.comments import request
183+ >>> from fiderpy.v1.resources.comments.service import CommentsService
184+
185+ >>> service = CommentsService(client=CommentsClient(http=http))
186+ >>> request = DeleteCommentRequest(number=1, id=1)
187+ >>> response = service.delete_comment(request=request)
188+ >>> response
189+ FiderAPIResponse(
190+ message="Successfully deleted comment!",
191+ data={},
192+ errors=None
193+ )
194+
195+ :param request: :class:`fiderpy.v1.resources.comments.request.DeleteCommentRequest`
196+ :return: :class:`fiderpy.v1.utils.domain.FiderAPIResponse`
197+ """
59198 return self .client .delete_comment (number = request .number , id = request .id )
0 commit comments