can get comment children of an other comment

This commit is contained in:
2019-09-22 23:54:53 +02:00
parent dc490dcac3
commit 3a77eff86e
5 changed files with 75 additions and 9 deletions

View File

@@ -257,8 +257,17 @@ paths:
schema:
$ref: '#/components/schemas/ConstitutionResponse'
/comments/{comment}:
parameters:
- name: comment
in: path
description: The ID of comment
example: 701dc504-db49-7e3a-2c0a-32542507ea57
required: true
schema:
type: string
format: uuid
get:
summary: Get Comment and children by Comment ID
summary: Get Comment by Comment ID
tags:
- comment
responses:
@@ -286,6 +295,36 @@ paths:
application/json:
schema:
$ref: '#/components/schemas/CommentResponse'
/comments/{comment}/children:
parameters:
- name: comment
in: path
description: The ID of comment
example: 701dc504-db49-7e3a-2c0a-32542507ea57
required: true
schema:
type: string
format: uuid
get:
summary: Get Comment children by Comment ID
tags:
- comment
responses:
200:
description: Return Comment children
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Paginated'
- type: object
properties:
result:
type: array
items:
$ref: '#/components/schemas/CommentResponse'
/articles/{article}/comments:
parameters:
- name: article
@@ -297,7 +336,7 @@ paths:
type: string
format: uuid
get:
summary: Get comment and children of one article
summary: Get comments of one article
tags:
- comment
responses:
@@ -547,7 +586,7 @@ components:
CreatedBy:
properties:
created_by:
$ref: '#/components/schemas/UuidEntity'
$ref: '#/components/schemas/CitizenResponse'
CreatedAt:
properties:

View File

@@ -7,16 +7,17 @@ create or replace function find_comments_by_parent(
) language plpgsql as
$$
begin
select json_agg(t), (select count(id) from "comment" com where com.parents_ids @> array[_parent_id])
select json_agg(t), (select count(id) from "comment" c3 where c3.parent_id = _parent_id)
into resource, total
from (
select
com.*,
(select count(*) from "comment" c2 where c2.parents_ids @> array[com.id]) as children_count,
find_reference_by_id(com.target_id, com.target_reference) as target,
find_citizen_by_id(com.created_by_id) as created_by
from "comment" as com
where parent_id = _parent_id
order by com.parents_ids nulls first, created_at desc,
order by created_at desc,
com.created_at desc
limit "limit" offset "offset"
) as t;

View File

@@ -7,16 +7,17 @@ create or replace function find_comments_by_target(
) language plpgsql as
$$
begin
select json_agg(t), (select count(id) from "comment" com where com.target_id = _target_id)
select json_agg(t), (select count(id) from "comment" c3 where c3.parent_id = _target_id)
into resource, total
from (
select
com.*,
(select count(*) from "comment" c2 where c2.parents_ids @> array[com.id]) as children_count,
find_reference_by_id(com.target_id, com.target_reference) as target,
find_citizen_by_id(com.created_by_id) as created_by
from "comment" as com
where com.target_id = _target_id
order by com.parents_ids nulls first, created_at desc,
where com.parent_id = _target_id
order by created_at desc,
com.created_at desc
limit "limit" offset "offset"
) as t;