1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2025-06-20 08:35:17 +00:00

Can get information about a single post

This commit is contained in:
2020-01-04 12:04:14 +01:00
parent 25159e3718
commit ddaa3a5a06
4 changed files with 93 additions and 0 deletions

View File

@ -230,6 +230,37 @@ export class PostsHelper {
return results.map((r) => this.DBToPost(r));
}
/**
* Get information about a single post
*
* @param postID Target post ID
*/
public static async GetSingle(postID: number) : Promise<Post> {
const row = await DatabaseHelper.QueryRow({
table: TABLE_NAME,
where: {
ID: postID
}
});
if(row == null)
throw new Error("Post " + postID + " not found!");
return this.DBToPost(row);
}
/**
* Get the access level of a user over a post
*
* This is a convenience function
*
* @param userID Target user ID
* @param postID Target post ID
*/
public static async GetAccessLevelFromPostID(userID: number, postID: number) : Promise<PostAccessLevel> {
return await this.GetAccessLevel(userID, await this.GetSingle(postID));
}
/**
* Get the access level of a user over a post
*
@ -312,6 +343,20 @@ export class PostsHelper {
return !post.isUserPage || await UserHelper.AllowComments(post.userPageID);
}
/**
* Check out whether a post exists or not
*
* @param postID The id of the post to check
*/
public static async Exists(postID: number) : Promise<boolean> {
return await DatabaseHelper.Count({
table: TABLE_NAME,
where: {
ID: postID
}
}) > 0;
}
/**
* Turn a database entry into a row object
*