Merge branch 'develop' of Software_Engineering_I/greenvironment-server into master

pull/5/head
Trivernis 5 years ago committed by Gitea
commit 5b0edc1423

@ -23,6 +23,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- getActivities field to receive all activities - getActivities field to receive all activities
- createActivity mutation - createActivity mutation
- activities table - activities table
- event and eventCount to UserData gql interface
- joined field to Event gql type
- joined field to Group gql type
### Removed ### Removed

@ -138,9 +138,15 @@ interface UserData {
"The groups the user has joined" "The groups the user has joined"
groups(first: Int=10, offset: Int=0): [Group] groups(first: Int=10, offset: Int=0): [Group]
"The numbef of groups the user has joined" "The number of groups the user has joined"
groupCount: Int! groupCount: Int!
"The events the user is participating in"
events(first: Int=10, offset: Int=0): [Event]
"The number of events the user is participating in"
eventCount: Int!
"the points of the user" "the points of the user"
points: Int! points: Int!
@ -189,6 +195,12 @@ type User implements UserData{
"The numbef of groups the user has joined" "The numbef of groups the user has joined"
groupCount: Int! groupCount: Int!
"The events the user is participating in"
events(first: Int=10, offset: Int=0): [Event]
"The number of events the user is participating in"
eventCount: Int!
"the levels of the user depending on the points" "the levels of the user depending on the points"
level: Int! level: Int!
} }
@ -251,6 +263,12 @@ type Profile implements UserData {
"The numbef of groups the user has joined" "The numbef of groups the user has joined"
groupCount: Int! groupCount: Int!
"The events the user is participating in"
events(first: Int=10, offset: Int=0): [Event]
"The number of events the user is participating in"
eventCount: Int!
"the points of the user" "the points of the user"
points: Int! points: Int!
@ -370,6 +388,9 @@ type Group {
"the events of the group" "the events of the group"
events(first: Int=10, offset: Int=0): [Event!]! events(first: Int=10, offset: Int=0): [Event!]!
"If the user with the specified id has joined the group"
joined(userId: Int!): Boolean
} }
type Event { type Event {
@ -387,6 +408,9 @@ type Event {
"The participants of the event." "The participants of the event."
participants(first: Int=10, offset: Int=0): [User!]! participants(first: Int=10, offset: Int=0): [User!]!
"Returns if the user with the specified id has joined the event"
joined(userId: Int!): Boolean
} }
"respresents an access token entry with the value as the acutal token and expires as the date the token expires." "respresents an access token entry with the value as the acutal token and expires as the date the token expires."

@ -24,13 +24,30 @@ export class Event extends Model<Event> {
@BelongsToMany(() => User, () => EventParticipant) @BelongsToMany(() => User, () => EventParticipant)
public rParticipants: User[]; public rParticipants: User[];
/**
* Returns the group the event belongs to
*/
public async group(): Promise<Group> { public async group(): Promise<Group> {
return await this.$get("rGroup") as Group; return await this.$get("rGroup") as Group;
} }
/**
* Returns the participants of the event
* @param first
* @param offset
*/
public async participants({first, offset}: {first: number, offset: number}): Promise<User[]> { public async participants({first, offset}: {first: number, offset: number}): Promise<User[]> {
const limit = first ?? 10; const limit = first ?? 10;
offset = offset ?? 0; offset = offset ?? 0;
return await this.$get("rParticipants", {limit, offset}) as User[]; return await this.$get("rParticipants", {limit, offset}) as User[];
} }
/**
* Returns if the specified user has joined the event
* @param userId
*/
public async joined({userId}: {userId: number}): Promise<boolean> {
const participants = await this.$get("rParticipants", {where: {id: userId}}) as User[];
return participants.length !== 0;
}
} }

@ -47,29 +47,59 @@ export class Group extends Model<Group> {
@HasMany(() => Event, "groupId") @HasMany(() => Event, "groupId")
public rEvents: Event[]; public rEvents: Event[];
/**
* Returns the creator of the group
*/
public async creator(): Promise<User> { public async creator(): Promise<User> {
return await this.$get("rCreator") as User; return await this.$get("rCreator") as User;
} }
/**
* Returns the list of admins with pagination
* @param first
* @param offset
*/
public async admins({first, offset}: { first: number, offset: number }): Promise<User[]> { public async admins({first, offset}: { first: number, offset: number }): Promise<User[]> {
const limit = first ?? 10; const limit = first ?? 10;
offset = offset ?? 0; offset = offset ?? 0;
return await this.$get("rAdmins", {limit, offset}) as User[]; return await this.$get("rAdmins", {limit, offset}) as User[];
} }
/**
* Returns the list of members with pagination
* @param first
* @param offset
*/
public async members({first, offset}: { first: number, offset: number }): Promise<User[]> { public async members({first, offset}: { first: number, offset: number }): Promise<User[]> {
const limit = first ?? 10; const limit = first ?? 10;
offset = offset ?? 0; offset = offset ?? 0;
return await this.$get("rMembers", {limit, offset}) as User[]; return await this.$get("rMembers", {limit, offset}) as User[];
} }
/**
* Returns the chat that belongs to the group
*/
public async chat(): Promise<ChatRoom> { public async chat(): Promise<ChatRoom> {
return await this.$get("rChat") as ChatRoom; return await this.$get("rChat") as ChatRoom;
} }
/**
* Returns all group events with pagination
* @param first
* @param offset
*/
public async events({first, offset}: { first: number, offset: number }): Promise<Event[]> { public async events({first, offset}: { first: number, offset: number }): Promise<Event[]> {
const limit = first ?? 10; const limit = first ?? 10;
offset = offset ?? 0; offset = offset ?? 0;
return await this.$get("rEvents", {limit, offset}) as Event[]; return await this.$get("rEvents", {limit, offset}) as Event[];
} }
/**
* Returns if a user has joined the group
* @param userId
*/
public async joined({userId}: {userId: number}): Promise<boolean> {
const members = await this.$get("rMembers", {where: {id: userId}}) as User[];
return members.length !== 0;
}
} }

Loading…
Cancel
Save