mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-11-25 23:09:22 +00:00
Created first comment
This commit is contained in:
parent
932ae20403
commit
4ffa8a421b
@ -1,6 +1,9 @@
|
||||
import { RequestHandler } from "../entities/RequestHandler";
|
||||
import { Comment } from "../entities/Comment";
|
||||
import { LikesHelper, LikesType } from "../helpers/LikesHelper";
|
||||
import { check_string_before_insert, removeHTMLNodes } from "../utils/StringUtils";
|
||||
import { time } from "../utils/DateUtils";
|
||||
import { CommentsHelper } from "../helpers/CommentsHelper";
|
||||
|
||||
/**
|
||||
* Comments controller
|
||||
@ -18,7 +21,49 @@ export class CommentsController {
|
||||
public static async Create(h: RequestHandler) {
|
||||
const postID = await h.postPostIDWithAccess("postID");
|
||||
|
||||
let content: string, image_path: string;
|
||||
|
||||
// Check if an image was included in the request or not
|
||||
if(h.hasFile("image")) {
|
||||
content = this.GetCommentContent(h, "content", false);
|
||||
image_path = await h.savePostImage("image", "imgcommentaire", 700, 700);
|
||||
}
|
||||
|
||||
else
|
||||
content = this.GetCommentContent(h, "content", true);
|
||||
|
||||
const newComment = new Comment({
|
||||
id: -1,
|
||||
timeSent: time(),
|
||||
postID: postID,
|
||||
userID: h.getUserId(),
|
||||
content: content,
|
||||
imagePath: image_path
|
||||
});
|
||||
|
||||
const commentID = await CommentsHelper.Create(newComment);
|
||||
|
||||
// TODO : Create notifications
|
||||
|
||||
// TODO : Delete any notifications targetting this user about the post
|
||||
|
||||
h.send({success: true, commentID: commentID});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the content of a comment included in a POST field
|
||||
*
|
||||
* @param h Request handler
|
||||
* @param name The name of the post field
|
||||
* @param need_check True if the comment must have valid content / false else
|
||||
*/
|
||||
private static GetCommentContent(h: RequestHandler, name: string, need_check = true) : string {
|
||||
const content = h.postContent(name);
|
||||
|
||||
if(need_check && !check_string_before_insert(content))
|
||||
h.error(400, "Please check new comment content!");
|
||||
|
||||
return content;
|
||||
}
|
||||
|
||||
|
||||
|
@ -2,6 +2,7 @@ import { Comment } from "../entities/Comment";
|
||||
import { DatabaseHelper } from "./DatabaseHelper";
|
||||
import { unlinkSync, existsSync } from "fs";
|
||||
import { LikesHelper, LikesType } from "./LikesHelper";
|
||||
import { mysql_date, time } from "../utils/DateUtils";
|
||||
|
||||
/**
|
||||
* Comments helper
|
||||
@ -13,6 +14,22 @@ const COMMENTS_TABLE = "commentaires";
|
||||
|
||||
export class CommentsHelper {
|
||||
|
||||
/**
|
||||
* Create a new comment
|
||||
*
|
||||
* @param comment Information about the comment to create
|
||||
*/
|
||||
public static async Create(comment: Comment) : Promise<number> {
|
||||
return await DatabaseHelper.InsertRow(COMMENTS_TABLE, {
|
||||
ID_texte: comment.postID,
|
||||
ID_personne: comment.userID,
|
||||
date_envoi: mysql_date(),
|
||||
time_insert: time(),
|
||||
commentaire: comment.content,
|
||||
image_commentaire: comment.hasImage ? comment.imagePath : ""
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the comments of a POST
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user