1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2024-11-22 13:29:22 +00:00

Can delete comments

This commit is contained in:
Pierre HUBERT 2020-03-21 08:40:31 +01:00
parent 58c3930ceb
commit db9be6bb31
2 changed files with 32 additions and 1 deletions

View File

@ -36,4 +36,8 @@ export class Comment implements CommentBuilder {
get imageURL() : string { get imageURL() : string {
return pathUserData(this.imagePath); return pathUserData(this.imagePath);
} }
get imageSysPath() : string {
return pathUserData(this.imagePath, true);
}
} }

View File

@ -1,5 +1,7 @@
import { Comment } from "../entities/Comment"; import { Comment } from "../entities/Comment";
import { DatabaseHelper } from "./DatabaseHelper"; import { DatabaseHelper } from "./DatabaseHelper";
import { unlinkSync, existsSync } from "fs";
import { LikesHelper, LikesType } from "./LikesHelper";
/** /**
* Comments helper * Comments helper
@ -28,13 +30,38 @@ export class CommentsHelper {
return results.map(this.DbToComment); return results.map(this.DbToComment);
} }
/**
* Permanently delete a comment
*
* @param comment Information about the comment to delete
*/
public static async Delete(comment: Comment) {
// Delete associated image (if any)
if(comment.hasImage && existsSync(comment.imageSysPath)) {
unlinkSync(comment.imageSysPath);
}
// Delete likes associated with the comment
await LikesHelper.DeleteAll(comment.id, LikesType.COMMENT);
// Delete the comment from the database
await DatabaseHelper.DeleteRows(COMMENTS_TABLE, {
ID: comment.id
})
}
/** /**
* Delete all the comments associated to a post * Delete all the comments associated to a post
* *
* @param postID Target post ID * @param postID Target post ID
*/ */
public static async DeleteAll(postID: number) { public static async DeleteAll(postID: number) {
// TODO : implement
// Get the comments of the post
for(const comment of await this.Get(postID)) {
await this.Delete(comment);
}
} }
/** /**