mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-12-28 14:38:52 +00:00
Completed advanced info
This commit is contained in:
parent
d1ea274281
commit
92723b487a
@ -68,7 +68,7 @@ export class UserController {
|
||||
}
|
||||
|
||||
|
||||
private static async UserToAPI(user : User, handler: RequestHandler, advanced: boolean = false) : Promise<Object> {
|
||||
private static async UserToAPI(user : User, h: RequestHandler, advanced: boolean = false) : Promise<Object> {
|
||||
const info = {
|
||||
"userID": user.id,
|
||||
"firstName": user.firstName,
|
||||
@ -76,7 +76,7 @@ export class UserController {
|
||||
"publicPage": user.pageStatus == UserPageStatus.PUBLIC,
|
||||
"openPage": user.pageStatus == UserPageStatus.OPEN,
|
||||
"virtualDirectory": user.virtualDirectory,
|
||||
"accountImage": this.GetAccountImageURL(user.accountImage, handler)
|
||||
"accountImage": this.GetAccountImageURL(user.accountImage, h)
|
||||
};
|
||||
|
||||
if(advanced) {
|
||||
@ -87,8 +87,12 @@ export class UserController {
|
||||
info["allowPostFromFriendOnHisPage"] = user.allowPostsFromFriends;
|
||||
info["account_creation_time"] = user.timeCreate;
|
||||
info["backgroundImage"] = BackgroundImageHelper.GetURL(user.id);
|
||||
info["pageLikes"] = await LikesHelper.Count(user.id, LikesType.USER);
|
||||
info["number_friends"] = user.friendsListPublic ? await FriendsHelper.CountForUser(user.id) : 0
|
||||
|
||||
info["pageLikes"] = await LikesHelper.Count(user.id, LikesType.USER);
|
||||
info["user_like_page"] = h.signedIn ? await LikesHelper.IsLiking(h.getUserId(), user.id, LikesType.USER) : false;
|
||||
|
||||
info["can_post_texts"] = await UserHelper.CanCreatePosts(h.getUserId(), user.id);
|
||||
}
|
||||
|
||||
return info;
|
||||
|
@ -57,4 +57,27 @@ export class FriendsHelper {
|
||||
}
|
||||
}) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check out whether friendship allows to create posts or not
|
||||
*
|
||||
* @param userID User wishing to create a post
|
||||
* @param targetID Target user ID
|
||||
*/
|
||||
public static async CanPostTexts(userID: number, targetID: number) : Promise<boolean> {
|
||||
const result = await DatabaseHelper.QueryRow({
|
||||
table: FRIENDS_TABLE,
|
||||
where: {
|
||||
ID_personne: targetID,
|
||||
ID_amis: userID,
|
||||
actif: 1
|
||||
},
|
||||
fields: ["autoriser_post_page"]
|
||||
});
|
||||
|
||||
if(result == null)
|
||||
return false;
|
||||
|
||||
return result["autoriser_post_page"] == 1;
|
||||
}
|
||||
}
|
@ -125,6 +125,50 @@ export class UserHelper {
|
||||
return (await this.GetUserInfo(userID)).pageStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check out whether a user allows posts from his
|
||||
* friends on his page or not
|
||||
*
|
||||
* This is a convenience method
|
||||
*
|
||||
* @param userID Target user ID
|
||||
*/
|
||||
private static async AllowPostsOnHisPage(userID: number) : Promise<boolean> {
|
||||
return (await this.GetUserInfo(userID)).allowPostsFromFriends;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check out whether a user can create a post on another user
|
||||
* page
|
||||
*
|
||||
* @param userID The user who wish to create a post
|
||||
* @param targetID The target page
|
||||
*/
|
||||
public static async CanCreatePosts(userID: number, targetID: number) {
|
||||
|
||||
// User MUST be signed in
|
||||
if(userID < 1)
|
||||
return false;
|
||||
|
||||
// A user can always create posts on his page
|
||||
if(userID == targetID) return true;
|
||||
|
||||
// User must be able to see the page
|
||||
if(!await this.CanSeeUserPage(userID, targetID))
|
||||
return false;
|
||||
|
||||
//Check if the user allow posts on his page
|
||||
if(!await this.AllowPostsOnHisPage(targetID))
|
||||
return false;
|
||||
|
||||
//Check if the friendship of the user allows him to create posts
|
||||
if(!await FriendsHelper.CanPostTexts(userID, targetID))
|
||||
return false;
|
||||
|
||||
// yes by default
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private static async DbToUser(row: any) : Promise<User> {
|
||||
return new User({
|
||||
|
Loading…
Reference in New Issue
Block a user