From cca1dbaa99e1d6e3ee86ad1ad482aed5c1839329 Mon Sep 17 00:00:00 2001 From: ManifoldFR <wilson.jallet@gmail.com> Date: Fri, 2 Mar 2018 19:13:16 +0100 Subject: [PATCH] Made allPosts query work --- .gitlab-ci.yml | 1 + db/migrations/20180302152113_requests.js | 44 +++++++++---------- ...184519_rename_recipient_user_join_group.js | 14 ++++++ src/graphql/schema.js | 11 +++-- src/graphql/typeDefs.js | 44 ++++++++++++++----- 5 files changed, 76 insertions(+), 38 deletions(-) create mode 100644 db/migrations/20180302184519_rename_recipient_user_join_group.js diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ff66f83..cd572dd 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,6 +30,7 @@ build: - knex seed:run artifacts: paths: + - ldap_connexion_config.json - build/ - node_modules/ expire_in: 240 min diff --git a/db/migrations/20180302152113_requests.js b/db/migrations/20180302152113_requests.js index 90eb6db..c0c4f45 100644 --- a/db/migrations/20180302152113_requests.js +++ b/db/migrations/20180302152113_requests.js @@ -6,32 +6,32 @@ exports.up = function(knex, Promise) { table.string('recepient').notNullable(); table.text('message'); }).then(()=>{ - return knex.schema.createTable('user_join_group', function (table) { - table.inherits('request'); - table.string('useruid').notNullable(); - }).then(()=>{ - return knex.schema.createTable('group_join_event', function (table){ - table.inherits('request'); - table.string('eventuid').notNullable(); - table.string('senderuid').notNullable(); - }).then(() => { - return knex.schema.createTable('your_group_host_event', function(table){ - table.inherits('request'); - table.string('eventuid').notNullable(); - table.string('senderuid').notNullable(); - }); - }); - }); + return knex.schema.createTable('user_join_group', function (table) { + table.inherits('request'); + table.string('useruid').notNullable(); + }).then(()=>{ + return knex.schema.createTable('group_join_event', function (table){ + table.inherits('request'); + table.string('eventuid').notNullable(); + table.string('senderuid').notNullable(); + }).then(() => { + return knex.schema.createTable('your_group_host_event', function(table){ + table.inherits('request'); + table.string('eventuid').notNullable(); + table.string('senderuid').notNullable(); + }); + }); + }); }); }; exports.down = function(knex, Promise) { return knex.schema.dropTable('your_group_host_event').then(() => { - return knex.schema.dropTable('group_join_event').then(() => { - return knex.schema.dropTable('user_join_group').then(() => { - return knex.schema.dropTable('request').then(() => { - }); - }); - }); + return knex.schema.dropTable('group_join_event').then(() => { + return knex.schema.dropTable('user_join_group').then(() => { + return knex.schema.dropTable('request').then(() => { + }); + }); + }); }); }; diff --git a/db/migrations/20180302184519_rename_recipient_user_join_group.js b/db/migrations/20180302184519_rename_recipient_user_join_group.js new file mode 100644 index 0000000..94bab05 --- /dev/null +++ b/db/migrations/20180302184519_rename_recipient_user_join_group.js @@ -0,0 +1,14 @@ + +exports.up = function(knex, Promise) { + return knex.schema.renameTable('request','requests').table('requests', function(table) { + table.renameColumn('recepient','recipient'); + }); +}; + +exports.down = function(knex, Promise) { + return knex.schema.table('requests', function (table) { + table.renameColumn('recipient', 'recepient').then(() => { + return knex.schema.rable('requests','request'); + }); + }); +}; diff --git a/src/graphql/schema.js b/src/graphql/schema.js index 9e11bea..a49d0fd 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -104,7 +104,6 @@ const resolvers = { throw "You are not a member of this group"; }); }, - asViewer: (obj, args, context) => { return resolverFuncs.getGroupIfVisible(context.user, args.groupUID).then(res => { if(res) @@ -116,7 +115,6 @@ const resolvers = { }, AdminMutation: { - isAdmin: (obj, args, context) => { return true; @@ -132,13 +130,18 @@ const resolvers = { }, ViewerMutation: { - requestJoin: (obj, args, context) => { console.log(obj); return null; } - } + }, + Post: { + authors: (obj, args, context) => { + console.log("Authors of post are:",obj.authors); + return knex.select().from('groups').whereIn('uid',obj.authors); + } + } }; const schema = makeExecutableSchema({ diff --git a/src/graphql/typeDefs.js b/src/graphql/typeDefs.js index 5413d10..5491e7b 100644 --- a/src/graphql/typeDefs.js +++ b/src/graphql/typeDefs.js @@ -4,11 +4,13 @@ const RootTypes = ` allGroups: [Group] group(uid: ID) : Group user(uid: ID) : [User] + allMessages: [Message] allEvents: [Event] + allPosts: [Post] + allAnnouncements: [Announcement] asAdmin(groupUID: ID): AdminQuery - allPosts: [Post] searchTOL( givenName: String, @@ -79,6 +81,7 @@ const subMutations = ` `; const subQueries = ` + # Requête à la base de donnée nécessitant d'être administrateur. type AdminQuery{ isAdmin: Boolean allRequests : Requests @@ -124,34 +127,47 @@ const Group = ` } `; +const Message = ` + # Tout type de message créé par un ou plusieurs groupes. + interface Message { + id: ID! + # Titre du message + title: String! + createdAt: String! + updatedAt: String! + # Auteur(s) du message + authors: [Group] + } +`; + const Post = ` - # Publications - type Post { + # Publication postée par un ou plusieurs groupes. + type Post implements Message { id: ID! title: String! createdAt: String! updatedAt: String! - # Auteurs de la publication authors: [Group] - description: String + content: String! } `; -const Announcements = ` - type Announcement implements Post { +const Announcement = ` + # Annonce publique effectuée par un ou plusieurs groupes. + type Announcement implements Message { id: ID! title: String! createdAt: String! updatedAt: String! authors: [Group] - description: String + description: String! views: Int } `; -const Events = ` +const Event = ` # Événements organisés par un ou plusieurs groupes. - type Event implements Post { + type Event implements Message { id: ID! # Intitulé de l'événement title: String! @@ -177,13 +193,17 @@ const Requests = ` hostEvent: [yourGroupHostEvent] } + # Demande d'un utilisateur désirant rejoindre le groupe. type userJoinGroup { + # Émetteur de la demande user: User } - # Demande + # Demande d'un groupe voulant rejoindre un événement type groupJoinEvent { + # Événement concerné event: Event + # Groupe voulant rejoindre l'événement groupWantingToJoin: Group } @@ -195,5 +215,5 @@ const Requests = ` `; -const typeDefs = [RootTypes, Group, User, Post, Events, subMutations, subQueries, Requests]; +const typeDefs = [RootTypes, Group, User, Message, Post, Announcement, Event, subMutations, subQueries, Requests]; export default typeDefs; -- GitLab