diff --git a/src/graphql/schema.js b/src/graphql/schema.js index 5a20fd7eeefb7161a0a40e0d25f4ce4011be6af5..850c7ca8afab59f96c050076aa32c43c77e95cb7 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -88,17 +88,13 @@ const resolvers = { } }, - Requests: { + AllRequests: { userJoinGroup : (obj, args, context) => { return db_utils.getUserJoinGroupRequests(context.user, args.groupUID); }, }, UserJoinGroup: { - requestID: (obj, args, context) => { - return obj.id; - }, - user : (obj, args, context) => { return db_utils.getUser(context.user, obj.useruid); /*return db_utils.getUser(context.user, "quentin.gendre"); @@ -115,10 +111,6 @@ const resolvers = { }, GroupJoinEvent : { - requestID: (obj, args, context) => { - return obj.id; - }, - event: (obj, args, context) => { return db_utils.getEvent(context.user, obj.eventuid); }, @@ -128,10 +120,6 @@ const resolvers = { }, YourGroupHostEvent : { - requestID: (obj, args, context) => { - return obj.id; - }, - event: (obj, args, context) => { return db_utils.getEvent(context.user, obj.eventuid); }, diff --git a/src/graphql/typeDefs.js b/src/graphql/typeDefs.js index 8ed83f0ce0c65e482548b174c9fd5cc9035fa4c4..9842a8824577c71263a4a2a1f1ebc3aad01589d5 100644 --- a/src/graphql/typeDefs.js +++ b/src/graphql/typeDefs.js @@ -10,7 +10,9 @@ const RootTypes = ` allAnnouncements: [Announcement] asAdmin(groupUID: ID): AdminQuery - + asSpeaker(groupUID: ID): AdminQuery + asMember(groupUID: ID): AdminQuery + asViewer(groupUID: ID): AdminQuery searchTOL( givenName: String, @@ -68,6 +70,7 @@ const subMutations = ` type SpeakerMutation{ postEvent(name: String, date: String): Event + answerRequest(request: ID, accept : Boolean): Request } type MemberMutation { @@ -78,13 +81,26 @@ const subMutations = ` requestJoin: Group } + `; const subQueries = ` # Requête à la base de donnée nécessitant d'être administrateur. type AdminQuery{ isAdmin: Boolean - allRequests : Requests + allRequests : AllRequests + } + + type SpeakerQuery{ + isSpeaker: Boolean + } + + type MemberQuery{ + isMember: Boolean + } + + type ViewerQuery{ + isViewer: Boolean } `; @@ -187,27 +203,32 @@ const Event = ` const Requests = ` # Demandes effectuées au groupe. - type Requests { + type AllRequests { userJoinGroup: [UserJoinGroup] groupJoinEvent: [GroupJoinEvent] yourGroupHostEvent: [YourGroupHostEvent] } - # Demande d'un utilisateur désirant rejoindre le groupe. - type UserJoinGroup { + interface Request { # ID de la demande - requestID: ID - # Émetteur de la demande - user: User + id: ID! # message accompagnant la demande message: String } + # Demande d'un utilisateur désirant rejoindre le groupe. + type UserJoinGroup implements Request{ + id: ID! + message: String + # Émetteur de la demande + user: User + } + # Demande d'un groupe voulant rejoindre un événement - type GroupJoinEvent { - # ID de la demande - requestID: ID + type GroupJoinEvent implements Request{ + id: ID! + message: String # Événement concerné event: Event # Groupe voulant rejoindre l'événement @@ -215,9 +236,9 @@ const Requests = ` } # Demande au récipiendaire de rejoindre l'organisation d'un événement. - type YourGroupHostEvent { - # ID de la demande + type YourGroupHostEvent implements Request{ requestID: ID + message: String # Événement concerné event: Event # Groupe ayant publié l'évènement et lancé l'invitation