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

Return more information about groups

This commit is contained in:
Pierre HUBERT 2019-12-24 19:15:12 +01:00
parent 0925b44492
commit f06f772420
2 changed files with 24 additions and 3 deletions

View File

@ -125,20 +125,23 @@ export class GroupsController {
const group = await GroupsHelper.GetInfo(groupID); const group = await GroupsHelper.GetInfo(groupID);
h.send(await this.GroupInfoToAPI(group, h)); h.send(await this.GroupInfoToAPI(group, h, true));
} }
/** /**
* Turn a GroupInfo object into a valid API object * Turn a GroupInfo object into a valid API object
* *
* @param info Information about the group * @param info Information about the group
* @param h Request handler
* @param advanced Specify whether advanced information should be returned
* in the request or not
* @returns Generated object * @returns Generated object
*/ */
private static async GroupInfoToAPI(info: GroupInfo, h: RequestHandler) : Promise<any> { private static async GroupInfoToAPI(info: GroupInfo, h: RequestHandler, advanced: boolean = false) : Promise<any> {
const membership = await GroupsHelper.GetMembershipInfo(info.id, h.getUserId()) const membership = await GroupsHelper.GetMembershipInfo(info.id, h.getUserId())
return { const data = {
id: info.id, id: info.id,
name: info.name, name: info.name,
icon_url: info.logoURL, icon_url: info.logoURL,
@ -151,5 +154,15 @@ export class GroupsController {
membership: GROUPS_MEMBERSHIP_LEVELS[membership ? membership.level : GroupMembershipLevels.VISITOR], membership: GROUPS_MEMBERSHIP_LEVELS[membership ? membership.level : GroupMembershipLevels.VISITOR],
following: membership ? membership.following : false following: membership ? membership.following : false
} }
if(advanced) {
data["time_create"] = info.timeCreate;
data["description"] = info.hasDescription ? info.description : "null";
data["url"] = info.url ? info.hasURL : "null";
//TODO : add likes information
}
return data;
} }
} }

View File

@ -95,4 +95,12 @@ export class GroupInfo implements GroupInfoConstructor {
get logoURL() : string { get logoURL() : string {
return pathUserData(this.logoPath, false); return pathUserData(this.logoPath, false);
} }
get hasDescription() : boolean {
return this.description && true;
}
get hasURL() : boolean {
return this.url && true;
}
} }