Hi,

1. Have we included pagination support? I think this is necessary as there
can be discussions with many comments.
2. Do we expand the replies section always? Otherwise, we can provide an
*expand* true/false parameter to include the replies only if it is
necessary.
3. Do we plan to add comment search capability?

Thanks

On Mon, Oct 29, 2018 at 8:36 AM Wasura Wattearachchi <[email protected]>
wrote:

> Hi all,
>
> Will move the logic to the backend as Bhathiya has suggested, and will get
> the response similar to the dummy comments json in the UI.
>
> Thanks,
> Wasura
>
> On Mon, Oct 29, 2018 at 6:29 AM Chanaka Jayasena <[email protected]> wrote:
>
>> The dummy comments json in the UI is matching to what Bhathiya has
>> suggested. It allows to load the comment react component recessively.
>>
>> thanks,
>> Chanaka
>>
>> On Sun, Oct 28, 2018 at 10:11 PM Bhathiya Jayasekara <[email protected]>
>> wrote:
>>
>>> Hi Wasura,
>>>
>>> IMO, the response for the GET should be intuitive.
>>>
>>> For example:
>>>
>>> [
>>>    {
>>>       "id":"12434",
>>>       "comment":"this is a parenth comment",
>>>       "timestamp":"xxxxx01",
>>>       "replies":[
>>>          {
>>>             "id":"12435",
>>>             "comment":"this is a reply",
>>>             "timestamp":"xxxxx02"
>>>          },
>>>          {
>>>             "id":"12436",
>>>             "comment":"this is another reply",
>>>             "timestamp":"xxxxx03"
>>>          }
>>>       ]
>>>    },
>>>    {
>>>       "id":"12438",
>>>       "comment":"this is another parent comment",
>>>       "timestamp":"xxxxx02"
>>>    }
>>> ]
>>>
>>> So you will have to write the logic to compose this response at the
>>> backend.
>>>
>>> On Sat, Oct 27, 2018 at 12:05 PM Wasura Wattearachchi <[email protected]>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> Sorry for the inconvenience. The methods that I have already
>>>> implemented are not visible in the above mail. Check below for the methods.
>>>>
>>>>
>>>> Thanks!
>>>>
>>>> On Sat, Oct 27, 2018 at 12:00 PM Wasura Wattearachchi <[email protected]>
>>>> wrote:
>>>>
>>>>>
>>>>> If I use above GET method, I will get an array of comments as the
>>>>> response and each array element will consist a comment (or a reply) with
>>>>> the fields (column names as attributes) from the database table.
>>>>> So, to list down the comments I used a loop and to list down the
>>>>> replies by checking whether what are the comments which have the
>>>>> parentCommentId of the parent comment.
>>>>>
>>>>> *Pseudocode*
>>>>>
>>>>>> commentList = call GET /apis/{apiId}/comments
>>>>>> For each comment in commentList{
>>>>>> Display comment;
>>>>>> If (comment[parentCommentId] != null){
>>>>>>           For each commentReply in commentList{
>>>>>>               If (comment[parentCommentId] ==
>>>>>> commentReply[parentCommentId]){
>>>>>>                    Display commentReply;
>>>>>>                       }
>>>>>>                   }
>>>>>>         }
>>>>>> }
>>>>>
>>>>>
>>>>> IMHO, I think above approach of using 2 nested loops is not efficient.
>>>>> So, how about we use another GET method to get the comments which have a
>>>>> particular parentCommentId and use it instead of the second loop? (check
>>>>> the method in red colour)
>>>>>
>>>>> *Pseudocode*
>>>>>
>>>>>> commentList = call GET /apis/{apiId}/comments
>>>>>> For each comment in commentList{
>>>>>> Display comment;
>>>>>> If (comment[parentCommentId] != null){
>>>>>> replyList = call GET /apis/{apiId}/comments/{parentCommentId}
>>>>>>         For each commentReply in replyList{
>>>>>>        Display commentReply;
>>>>>>                 }
>>>>>>         }
>>>>>> }
>>>>>
>>>>>
>>>>> But the drawback in here is that there will be two database calls when
>>>>> listing a single comment with replies.
>>>>>
>>>>
>>> This also has 2 network calls which is costlier than the 1st case.
>>>
>>> Anyway, this will be easiler when you move the logic to the backend as I
>>> suggested above.
>>>
>>> Thanks,
>>> Bhathiya
>>>
>>>
>>>> What do you think about this?
>>>>>
>>>>> Thank you!
>>>>>
>>>>> --
>>>>> Wasura Wattearachchi | Software Engineer Intern | WSO2 Inc.
>>>>> (m) +94775396038 | (e) [email protected]
>>>>> <http://wso2.com/signature>
>>>>>
>>>>
>>>>
>>>> --
>>>> Wasura Wattearachchi | Software Engineer Intern | WSO2 Inc.
>>>> (m) +94775396038 | (e) [email protected]
>>>> <http://wso2.com/signature>
>>>>
>>>
>>>
>>> --
>>> *Bhathiya Jayasekara*
>>> *Technical Lead,*
>>> *WSO2 inc., http://wso2.com <http://wso2.com>*
>>>
>>> *Phone: +94715478185*
>>> *LinkedIn: http://www.linkedin.com/in/bhathiyaj
>>> <http://www.linkedin.com/in/bhathiyaj>*
>>> *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>*
>>> *Blog: http://movingaheadblog.blogspot.com
>>> <http://movingaheadblog.blogspot.com/>*
>>>
>>
>>
>> --
>> Chanaka Jayasena
>> Associate Tech Lead,
>> email: [email protected]; cell: +94 77 4464006
>> blog: http://chanaka3d.blogspot.com
>>
>
>
> --
> Wasura Wattearachchi | Software Engineer Intern | WSO2 Inc.
> (m) +94775396038 | (e) [email protected]
> <http://wso2.com/signature>
> _______________________________________________
> Dev mailing list
> [email protected]
> http://wso2.org/cgi-bin/mailman/listinfo/dev
>


-- 
Malintha Amarasinghe
*WSO2, Inc. - lean | enterprise | middleware*
http://wso2.com/

Mobile : +94 712383306
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to