Introduce the group activity section
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
33
js/src/types/activity.model.ts
Normal file
33
js/src/types/activity.model.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { IActor, IGroup } from "./actor";
|
||||
import { IMember } from "./actor/member.model";
|
||||
import {
|
||||
ActivityDiscussionSubject,
|
||||
ActivityEventSubject,
|
||||
ActivityGroupSubject,
|
||||
ActivityMemberSubject,
|
||||
ActivityPostSubject,
|
||||
ActivityResourceSubject,
|
||||
ActivityType,
|
||||
} from "./enums";
|
||||
import { IEvent } from "./event.model";
|
||||
import { IPost } from "./post.model";
|
||||
import { IResource } from "./resource";
|
||||
|
||||
export type ActivitySubject =
|
||||
| ActivityEventSubject
|
||||
| ActivityPostSubject
|
||||
| ActivityMemberSubject
|
||||
| ActivityResourceSubject
|
||||
| ActivityDiscussionSubject
|
||||
| ActivityGroupSubject;
|
||||
|
||||
export interface IActivity {
|
||||
id: string;
|
||||
type: ActivityType;
|
||||
subject: ActivitySubject;
|
||||
subjectParams: { key: string; value: string }[];
|
||||
author: IActor;
|
||||
group: IGroup;
|
||||
object: IEvent | IPost | IGroup | IMember | IResource;
|
||||
insertedAt: string;
|
||||
}
|
||||
@@ -10,6 +10,7 @@ import { Address } from "../address.model";
|
||||
import { ActorType, Openness } from "../enums";
|
||||
import type { IMember } from "./member.model";
|
||||
import type { ITodoList } from "../todolist";
|
||||
import { IActivity } from "../activity.model";
|
||||
|
||||
export interface IGroup extends IActor {
|
||||
members: Paginate<IMember>;
|
||||
@@ -20,6 +21,7 @@ export interface IGroup extends IActor {
|
||||
physicalAddress: IAddress;
|
||||
openness: Openness;
|
||||
manuallyApprovesFollowers: boolean;
|
||||
activity: Paginate<IActivity>;
|
||||
}
|
||||
|
||||
export class Group extends Actor implements IGroup {
|
||||
@@ -41,6 +43,7 @@ export class Group extends Actor implements IGroup {
|
||||
|
||||
this.patch(hash);
|
||||
}
|
||||
activity: Paginate<IActivity> = { elements: [], total: 0 };
|
||||
|
||||
openness: Openness = Openness.INVITE_ONLY;
|
||||
|
||||
|
||||
@@ -182,3 +182,56 @@ export enum GroupVisibility {
|
||||
export enum AddressSearchType {
|
||||
ADMINISTRATIVE = "ADMINISTRATIVE",
|
||||
}
|
||||
export enum ActivityType {
|
||||
EVENT = "EVENT",
|
||||
POST = "POST",
|
||||
MEMBER = "MEMBER",
|
||||
RESOURCE = "RESOURCE",
|
||||
DISCUSSION = "DISCUSSION",
|
||||
GROUP = "GROUP",
|
||||
}
|
||||
|
||||
export enum ActivityEventSubject {
|
||||
EVENT_CREATED = "event_created",
|
||||
EVENT_UPDATED = "event_updated",
|
||||
EVENT_DELETED = "event_deleted",
|
||||
}
|
||||
|
||||
export enum ActivityPostSubject {
|
||||
POST_CREATED = "post_created",
|
||||
POST_UPDATED = "post_updated",
|
||||
POST_DELETED = "post_deleted",
|
||||
}
|
||||
|
||||
export enum ActivityMemberSubject {
|
||||
MEMBER_REQUEST = "member_request",
|
||||
MEMBER_INVITED = "member_invited",
|
||||
MEMBER_ACCEPTED_INVITATION = "member_accepted_invitation",
|
||||
MEMBER_REJECTED_INVITATION = "member_rejected_invitation",
|
||||
MEMBER_ADDED = "member_added",
|
||||
MEMBER_JOINED = "member_joined",
|
||||
MEMBER_APPROVED = "member_approved",
|
||||
MEMBER_UPDATED = "member_updated",
|
||||
MEMBER_REMOVED = "member_removed",
|
||||
MEMBER_QUIT = "member_quit",
|
||||
}
|
||||
|
||||
export enum ActivityResourceSubject {
|
||||
RESOURCE_CREATED = "resource_created",
|
||||
RESOURCE_UPDATED = "resource_renamed",
|
||||
RESOURCE_MOVED = "resource_moved",
|
||||
RESOURCE_DELETED = "resource_deleted",
|
||||
}
|
||||
|
||||
export enum ActivityDiscussionSubject {
|
||||
DISCUSSION_CREATED = "discussion_created",
|
||||
DISCUSSION_REPLIED = "discussion_replied",
|
||||
DISCUSSION_RENAMED = "discussion_renamed",
|
||||
DISCUSSION_ARCHIVED = "discussion_archived",
|
||||
DISCUSSION_DELETED = "discussion_deleted",
|
||||
}
|
||||
|
||||
export enum ActivityGroupSubject {
|
||||
GROUP_CREATED = "group_created",
|
||||
GROUP_UPDATED = "group_updated",
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user