Skip to content
Snippets Groups Projects
Commit 8aee1562 authored by Anatole ROMON's avatar Anatole ROMON
Browse files

separation des SimpleGroup et MetaGroup

parent 5df3f2f5
No related branches found
No related tags found
No related merge requests found
......@@ -25,12 +25,42 @@ const resolvers = {
});
},
accessGroups: (obj, args, context) => {
return {};
},
accessPosts: (obj, args, context) => {
return {};
},
accessUsers: (obj, args, context) => {
return {};
},
},
GroupQuery : {
allGroups: (obj, args, context) => {
return db_utils.getAllVisibleGroups(context.user);
},
group: (obj, args, context) => {
return db_utils.getGroupIfVisible(context.user, args.uid);
},
simpleGroup: (obj, args, context) => {
return db_utils.getGroupIfVisible(context.user, args.uid);
}
},
PostQuery : {
allPosts: (obj, args, context) => {
return knex.select().from('posts');
},
post: (obj, args, context) => {
const result = knex.select().from('posts').where('id','=',args.id);
return result.then((res) => res[0]);
},
},
UserQuery: {
user: (obj, args, context) => {
const refactorer = (data) => {
return {
......@@ -52,14 +82,6 @@ const resolvers = {
return result;
},
allPosts: (obj, args, context) => {
return knex.select().from('posts');
},
post: (obj, args, context) => {
const result = knex.select().from('posts').where('id','=',args.id);
return result.then((res) => res[0]);
},
searchTOL: (obj, args, context) => {
console.log(args);
return db_utils.repliquerTOLdesIds(context.user, {
......@@ -238,11 +260,24 @@ const resolvers = {
},
Group: {
__resolveType: (obj) => {
if(obj.isSpiritual)
return "MetaGroup";
else
return "SimpleGroup";
}
},
SimpleGroup: {
members: (obj, args, context) => {
console.log("Current group is",obj.uid);
console.log("\tMembers of the group are:",obj);
return db_utils.listerMembres(context.user,obj.uid);
}
},
MetaGroup: {
}
};
......
const RootTypes = `
# Requêtes
type Query {
allGroups: [Group]
group(uid: ID) : Group
user(uid: ID) : User
allMessages: [Message]
allEvents: [Event]
allPosts: [Post]
post(id: ID): Post
allAnnouncements: [Announcement]
accessGroups : GroupQuery
accessPosts : PostQuery
accessUsers : UserQuery
asAdmin(groupUID: ID): AdminQuery
asSpeaker(groupUID: ID): AdminQuery
asMember(groupUID: ID): AdminQuery
asViewer(groupUID: ID): AdminQuery
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]
}
type Mutation {
......@@ -86,6 +66,44 @@ const subMutations = `
`;
const subQueries = `
type GroupQuery{
allGroups: [Group]
group(uid: ID) : Group
simpleGroup(uid : ID) : SimpleGroup
metaGroup(uid : ID) : MetaGroup
}
type PostQuery{
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
......@@ -126,24 +144,48 @@ const User = `
const Group = `
# Groupes associatifs
type Group {
# Identifiant unique du groupe
interface Group {
# Identifiant unique de l'union
uid: ID
# Nom du groupe
# Nom de l'union
name: String
# Site du groupe
website: String
# Le groupe est-il un spiritualGroup (sinon c'est un materialGroup)
createdAt: String!
updatedAt: String!
}
type SimpleGroup implements Group{
uid: ID
name: String
website: String
createdAt: String!
updatedAt: String!
# Membres du groupe
members: [User]
# Jour et heure de création du groupe
createdAt: String!
updatedAt: String!
description: String
# École d'origine du groupe
school: String
# Groupe parent
parent: Group
}
type MetaGroup implements Group {
uid: ID
name: String
website: String
createdAt: String!
updatedAt: String!
# Les membres sont des groupes
groupMembers: [Group]!
}
`;
const Message = `
......@@ -240,7 +282,7 @@ const Requests = `
# Demande au récipiendaire de rejoindre l'organisation d'un événement.
type YourGroupHostEvent implements Request{
requestID: ID
id: ID!
message: String
# Événement concerné
event: Event
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment