From c20ed52854cf116b4e27a6c37128e84378793240 Mon Sep 17 00:00:00 2001
From: anatole <anatole.romon@polytechnique.edu>
Date: Wed, 7 Mar 2018 21:28:00 +0100
Subject: [PATCH] Deplacement

---
 src/graphql/schema.js                         |   5 +-
 src/graphql/typeDefs/actions.js               | 136 +++++++++++++++++
 .../{typeDefs.js => typeDefs/objects.js}      | 140 +-----------------
 3 files changed, 144 insertions(+), 137 deletions(-)
 create mode 100644 src/graphql/typeDefs/actions.js
 rename src/graphql/{typeDefs.js => typeDefs/objects.js} (60%)

diff --git a/src/graphql/schema.js b/src/graphql/schema.js
index 8442987..720f983 100644
--- a/src/graphql/schema.js
+++ b/src/graphql/schema.js
@@ -4,9 +4,12 @@
 */
 
 import { makeExecutableSchema } from 'graphql-tools';
-import typeDefs from './typeDefs';
+import actionDefs from './typeDefs/actions';
+import objectDefs from './typeDefs/objects';
 import { resolvers } from './resolvers';
 
+const typeDefs = actionDefs.concat(objectDefs);
+
 const schema = makeExecutableSchema({
     typeDefs,
     resolvers
diff --git a/src/graphql/typeDefs/actions.js b/src/graphql/typeDefs/actions.js
new file mode 100644
index 0000000..53a982c
--- /dev/null
+++ b/src/graphql/typeDefs/actions.js
@@ -0,0 +1,136 @@
+const RootTypes = `
+    # Requêtes
+    type Query {
+        accessGroups : GroupQuery
+        accessPosts : MessageQuery
+        accessUsers : UserQuery
+
+        asAdmin(groupUID: ID): AdminQuery
+        asSpeaker(groupUID: ID): AdminQuery
+        asMember(groupUID: ID): MemberQuery
+        asViewer(groupUID: ID): AdminQuery
+        
+    }
+
+    type Mutation {
+        asAdmin(groupUID: String): AdminMutation
+        asSpeaker(groupUID: String): SpeakerMutation
+        asMember(groupUID: String): MemberMutation
+        asViewer(groupUID: String): ViewerMutation
+    }
+
+   
+`;
+
+const subMutations = `
+    type AdminMutation {
+
+        isAdmin: Boolean
+
+        createSubgroup(
+            uid: ID = null,
+            name: String,
+            website: String,
+            description: String,
+            school: String
+        ): Group
+
+        addUser(userid : String): User
+        removeUser(userid : String): User
+        addAdmin(userid : String): User
+        removeAdmin(userid : String): User
+
+        editGroup(
+            name: String,
+            website: String,
+            description: String,
+            school: String
+        ): Group
+
+    }
+
+    type SpeakerMutation{
+        postEvent(name: String, date: String): Event
+        answerEventRequest(request: ID, accept : Boolean): Request
+    }
+
+    type MemberMutation {
+        leave: Group
+    }
+
+    type ViewerMutation {
+        requestJoin: Group
+    }
+
+
+`;
+
+const subQueries = `
+
+    """
+    Requête pour obtenir un groupe.
+    """
+    type GroupQuery{
+        allGroups: [Group]
+        allSimpleGroups: [SimpleGroup]
+
+        group(uid: ID) : Group
+        simpleGroup(uid : ID) : SimpleGroup
+        metaGroup(uid : ID) : MetaGroup
+
+    }
+
+    """
+    Requête pour obtenir un message.
+    """
+    type MessageQuery{
+        allMessages: [Message]
+        allEvents: [Event]
+        allPosts: [Post]
+        post(id: ID): Post
+        allAnnouncements: [Announcement]
+    }
+
+    type UserQuery{
+
+        user(uid: ID) : User
+
+        searchTOL(
+            givenName: String,
+            lastName: String,
+            nickname: String,
+            nationality: String,
+            school: String,
+            promotion: String,
+            groups: String,
+            studies: String,
+            sport: String,
+            phone: String,
+            mail: String,
+            adress: String,
+            ip: String
+        ): [String]
+    }
+
+    # Requête à la base de donnée nécessitant d'être administrateur.
+    type AdminQuery{
+        isAdmin: Boolean
+        allRequests : AllRequests
+    }
+
+    type SpeakerQuery{
+        isSpeaker: Boolean
+    }
+
+    type MemberQuery{
+        isMember: Boolean
+        allMembers : [Group]
+    }
+
+    type ViewerQuery{
+        isViewer: Boolean
+    }
+`;
+
+const actionDefs = [RootTypes, subQueries ];
+export default typeDefs;
diff --git a/src/graphql/typeDefs.js b/src/graphql/typeDefs/objects.js
similarity index 60%
rename from src/graphql/typeDefs.js
rename to src/graphql/typeDefs/objects.js
index 9bde819..454dabc 100644
--- a/src/graphql/typeDefs.js
+++ b/src/graphql/typeDefs/objects.js
@@ -1,136 +1,3 @@
-const RootTypes = `
-    # Requêtes
-    type Query {
-        accessGroups : GroupQuery
-        accessPosts : MessageQuery
-        accessUsers : UserQuery
-
-        asAdmin(groupUID: ID): AdminQuery
-        asSpeaker(groupUID: ID): AdminQuery
-        asMember(groupUID: ID): MemberQuery
-        asViewer(groupUID: ID): AdminQuery
-        
-    }
-
-    type Mutation {
-        asAdmin(groupUID: String): AdminMutation
-        asSpeaker(groupUID: String): SpeakerMutation
-        asMember(groupUID: String): MemberMutation
-        asViewer(groupUID: String): ViewerMutation
-    }
-
-   
-`;
-
-const subMutations = `
-    type AdminMutation {
-
-        isAdmin: Boolean
-
-        createSubgroup(
-            uid: ID = null,
-            name: String,
-            website: String,
-            description: String,
-            school: String
-        ): Group
-
-        addUser(userid : String): User
-        removeUser(userid : String): User
-        addAdmin(userid : String): User
-        removeAdmin(userid : String): User
-
-        editGroup(
-            name: String,
-            website: String,
-            description: String,
-            school: String
-        ): Group
-
-    }
-
-    type SpeakerMutation{
-        postEvent(name: String, date: String): Event
-        answerEventRequest(request: ID, accept : Boolean): Request
-    }
-
-    type MemberMutation {
-        leave: Group
-    }
-
-    type ViewerMutation {
-        requestJoin: Group
-    }
-
-
-`;
-
-const subQueries = `
-
-    """
-    Requête pour obtenir un groupe.
-    """
-    type GroupQuery{
-        allGroups: [Group]
-        allSimpleGroups: [SimpleGroup]
-
-        group(uid: ID) : Group
-        simpleGroup(uid : ID) : SimpleGroup
-        metaGroup(uid : ID) : MetaGroup
-
-    }
-
-    """
-    Requête pour obtenir un message.
-    """
-    type MessageQuery{
-        allMessages: [Message]
-        allEvents: [Event]
-        allPosts: [Post]
-        post(id: ID): Post
-        allAnnouncements: [Announcement]
-    }
-
-    type UserQuery{
-
-        user(uid: ID) : User
-
-        searchTOL(
-            givenName: String,
-            lastName: String,
-            nickname: String,
-            nationality: String,
-            school: String,
-            promotion: String,
-            groups: String,
-            studies: String,
-            sport: String,
-            phone: String,
-            mail: String,
-            adress: String,
-            ip: String
-        ): [String]
-    }
-
-    # Requête à la base de donnée nécessitant d'être administrateur.
-    type AdminQuery{
-        isAdmin: Boolean
-        allRequests : AllRequests
-    }
-
-    type SpeakerQuery{
-        isSpeaker: Boolean
-    }
-
-    type MemberQuery{
-        isMember: Boolean
-        allMembers : [Group]
-    }
-
-    type ViewerQuery{
-        isViewer: Boolean
-    }
-`;
 
 const User = `
     # Utilisateurs
@@ -264,7 +131,8 @@ const Event = `
         # Organisateurs
         authors: [Group]
         # Personnes qui participent à l'événement.
-        participants: [User]
+        participatingGroups: [Group]
+        participatingUsers: [User]
         description: String
     }
 `;
@@ -315,5 +183,5 @@ const Requests = `
 
 `;
 
-const typeDefs = [RootTypes, Group, User, Message, Post, Announcement, Event, subMutations, subQueries, Requests];
-export default typeDefs;
+const objectDefs = [Group, User, Message, Post, Announcement, Event, subMutations, Requests];
+export default typeDefs;
\ No newline at end of file
-- 
GitLab