Initial commit
This commit is contained in:
commit
4f415b6190
77 changed files with 52208 additions and 0 deletions
51
src/model/group.js
Normal file
51
src/model/group.js
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
class Group {
|
||||
static fromData(host, content) {
|
||||
if (typeof content === "string") {
|
||||
content = JSON.parse(content);
|
||||
}
|
||||
var group = new Group();
|
||||
group.host = host;
|
||||
group.data = content;
|
||||
return group;
|
||||
}
|
||||
|
||||
getHandle() {
|
||||
return "@" + this.getUsername() + "@" + this.host;
|
||||
}
|
||||
|
||||
getAvatarUrl() {
|
||||
return this.data.avatar?.url;
|
||||
}
|
||||
getBannerUrl() {
|
||||
return this.data.banner?.url;
|
||||
}
|
||||
getUsername() {
|
||||
return this.data.preferredUsername;
|
||||
}
|
||||
|
||||
getLocationString() {
|
||||
return this.data.physicalAddress?.description;
|
||||
}
|
||||
|
||||
getIcsUrl() {
|
||||
return this.data.url + "/feed/ics";
|
||||
}
|
||||
getAtomUrl() {
|
||||
return this.data.url + "/feed/atom";
|
||||
}
|
||||
|
||||
getEvents() {
|
||||
var events = [];
|
||||
for (var evt in this.data.organizedEvents?.elements) {
|
||||
events.push(Event.fromData(this.host, this.data.organizedEvents.elements[evt]));
|
||||
}
|
||||
return events;
|
||||
}
|
||||
|
||||
canBeEditedBy(role) {
|
||||
return role === ROLE.ADMINISTRATOR;
|
||||
}
|
||||
canManageEvents(role) {
|
||||
return role === ROLE.ADMINISTRATOR || role === ROLE.MODERATOR;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue