mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2025-06-20 08:35:17 +00:00
Get & return the comments of a post
This commit is contained in:
48
src/controllers/CommentsController.ts
Normal file
48
src/controllers/CommentsController.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import { RequestHandler } from "../entities/RequestHandler";
|
||||
import { Comment } from "../entities/Comment";
|
||||
import { LikesHelper, LikesType } from "../helpers/LikesHelper";
|
||||
|
||||
/**
|
||||
* Comments controller
|
||||
*
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
|
||||
export class CommentsController {
|
||||
|
||||
|
||||
/**
|
||||
* Turn a list of comment object into API entries
|
||||
*
|
||||
* @param h Request handler
|
||||
* @param l List of comments
|
||||
*/
|
||||
public static async CommentsToAPI(h: RequestHandler, l: Comment[]) : Promise<Array<any>> {
|
||||
const list = [];
|
||||
for (const comment of l) {
|
||||
list.push(await this.CommentToAPI(h, comment));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Turn a comment into an API object
|
||||
*
|
||||
* @param h Request handler
|
||||
* @param c Comment
|
||||
*/
|
||||
public static async CommentToAPI(h: RequestHandler, c: Comment) : Promise<any> {
|
||||
return {
|
||||
ID: c.id,
|
||||
userID: c.userID,
|
||||
postID: c.postID,
|
||||
time_sent: c.timeSent,
|
||||
content: c.content,
|
||||
img_path: c.hasImage ? c.imagePath : null,
|
||||
img_url: c.hasImage ? c.imageURL : null,
|
||||
likes: await LikesHelper.Count(c.id, LikesType.COMMENT),
|
||||
userlike: h.signedIn ? await LikesHelper.IsLiking(h.getUserId(), c.id, LikesType.COMMENT) : false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -7,6 +7,8 @@ import { MoviesHelper } from "../helpers/MoviesHelper";
|
||||
import { SurveyHelper } from "../helpers/SurveyHelper";
|
||||
import { SurveyController } from "./SurveyController";
|
||||
import { LikesHelper, LikesType } from "../helpers/LikesHelper";
|
||||
import { CommentsHelper } from "../helpers/CommentsHelper";
|
||||
import { CommentsController } from "./CommentsController";
|
||||
|
||||
/**
|
||||
* Posts controller
|
||||
@ -106,7 +108,7 @@ export class PostsController {
|
||||
user_access: ACCESS_LEVELS_API[await PostsHelper.GetAccessLevel(h.optionnalUserID, p)],
|
||||
|
||||
// Load comments (if possible)
|
||||
comments: await PostsHelper.AllowCommentsOnPost(p) ? "to come" : null,
|
||||
comments: await PostsHelper.AllowCommentsOnPost(p) ? await CommentsController.CommentsToAPI(h, await CommentsHelper.Get(p.id)) : null,
|
||||
};
|
||||
|
||||
return data;
|
||||
|
Reference in New Issue
Block a user