mirror of
https://gitlab.com/comunic/comunicapiv2
synced 2024-11-22 13:29:22 +00:00
Return the number of likes of a group
This commit is contained in:
parent
f06f772420
commit
91f0413963
@ -3,6 +3,7 @@ import { GroupsHelper } from "../helpers/GroupsHelper";
|
|||||||
import { GroupsAccessLevel, GroupInfo, GroupVisibilityLevel, GroupPostsCreationLevel, GroupRegistrationLevel } from "../entities/Group";
|
import { GroupsAccessLevel, GroupInfo, GroupVisibilityLevel, GroupPostsCreationLevel, GroupRegistrationLevel } from "../entities/Group";
|
||||||
import { GroupMembershipLevels } from "../entities/GroupMember";
|
import { GroupMembershipLevels } from "../entities/GroupMember";
|
||||||
import { time } from "../utils/DateUtils";
|
import { time } from "../utils/DateUtils";
|
||||||
|
import { LikesHelper, LikesType } from "../helpers/LikesHelper";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Groups API controller
|
* Groups API controller
|
||||||
@ -160,7 +161,7 @@ export class GroupsController {
|
|||||||
data["description"] = info.hasDescription ? info.description : "null";
|
data["description"] = info.hasDescription ? info.description : "null";
|
||||||
data["url"] = info.url ? info.hasURL : "null";
|
data["url"] = info.url ? info.hasURL : "null";
|
||||||
|
|
||||||
//TODO : add likes information
|
data["number_likes"] = await LikesHelper.Count(info.id, LikesType.GROUP);
|
||||||
}
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
|
52
src/helpers/LikesHelper.ts
Normal file
52
src/helpers/LikesHelper.ts
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
import { DatabaseHelper } from "./DatabaseHelper";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Likes helper
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types of likes
|
||||||
|
*/
|
||||||
|
export enum LikesType {
|
||||||
|
USER = "user",
|
||||||
|
POST = "post",
|
||||||
|
COMMENT = "comment",
|
||||||
|
GROUP = "group"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const LIKES_TABLE = "aime";
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translation of kinds of likes for the database
|
||||||
|
*/
|
||||||
|
const LikesKindsDB = [];
|
||||||
|
LikesKindsDB[LikesType.USER] = "page";
|
||||||
|
LikesKindsDB[LikesType.POST] = "texte";
|
||||||
|
LikesKindsDB[LikesType.COMMENT] = "commentaire";
|
||||||
|
LikesKindsDB[LikesType.GROUP] = "group";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
export class LikesHelper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Count the number of likes of a specified element
|
||||||
|
*
|
||||||
|
* @param id The ID of the element to count
|
||||||
|
* @param type The type of the element
|
||||||
|
*/
|
||||||
|
public static async Count(id: number, type: LikesType) : Promise<number> {
|
||||||
|
return DatabaseHelper.Count({
|
||||||
|
table: LIKES_TABLE,
|
||||||
|
where: {
|
||||||
|
ID_type: id,
|
||||||
|
type: LikesKindsDB[type]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user