1
0
mirror of https://gitlab.com/comunic/comunicapiv2 synced 2024-12-28 14:38:52 +00:00

Ready to implement comments

This commit is contained in:
Pierre HUBERT 2020-01-03 17:01:09 +01:00
parent 90d81c1d7a
commit 5a45096fa6
4 changed files with 26 additions and 2 deletions

View File

@ -105,7 +105,8 @@ export class PostsController {
// Determine user access level
user_access: ACCESS_LEVELS_API[await PostsHelper.GetAccessLevel(h.optionnalUserID, p)],
// TODO : add comments
// Load comments (if possible)
comments: await PostsHelper.AllowCommentsOnPost(p) ? "to come" : null,
};
return data;

View File

@ -133,8 +133,12 @@ export class Post implements PostBuilder {
}
}
get isUserPage() : boolean {
return this.kindPage == PostPageKind.PAGE_KIND_USER;
}
get userPageID() : number {
return this.kindPage == PostPageKind.PAGE_KIND_USER ? this.pageID : 0
return this.isUserPage ? this.pageID : 0
}
get groupID() : number {

View File

@ -181,6 +181,15 @@ export class PostsHelper {
throw Error("GetAccessLevel reached an unimplemented status!");
}
/**
* Check out whether comments are allowed on a post or not
*
* @param post The post to check
*/
public static async AllowCommentsOnPost(post: Post) : Promise<boolean> {
return !post.isUserPage || await UserHelper.AllowComments(post.userPageID);
}
/**
* Turn a database entry into a row object
*

View File

@ -147,6 +147,16 @@ export class UserHelper {
return (await this.GetUserInfo(userID)).friendsListPublic;
}
/**
* Convenience function to check out whether comments are
* allowed on a page or not
*
* @param userID Target user ID
*/
public static async AllowComments(userID: number) : Promise<boolean> {
return !(await this.GetUserInfo(userID)).blockComments;
}
/**
* Check out whether a user can create a post on another user
* page