/** * @file Resolvers pour tous les types de messages. */ import knex from '../../../db/knex_router'; const MessageResolvers = { Message: { __resolveType: function(message) { if (message.hasOwnProperty('location')) return "Event"; else return "Post"; } }, Post: { authors(message, args, context) { const result = knex.select().from('groups').whereIn('uid', message.authors); console.log("Resolved authors field as:"); // console.log(result); return result; } }, Announcement: { authors(message, args, context) { const result = knex.select().from('groups').whereIn('uid', message.authors); console.log("Resolved authors field as:"); // console.log(result); return result; }, forEvent: function(obj, args, context) { // le champ is_announcement n'existe que sur les Events // une ligne de la bdd events peut résoudre comme évènement ou comme annonce if (obj.is_announcement) return obj; else return null; } }, Event: { authors(message, args, context) { const result = knex.select().from('groups').whereIn('uid', message.authors); // console.log(result); return result; }, startTime: function(obj) { return obj.start_time; }, endTime: function(obj) { return obj.end_time; }, asAnnouncement: function(obj, args, context) { // le champ is_announcement indique si il existe une annonce qui va avec l'évènement // une ligne de la bdd events peut résoudre comme évènement ou comme annonce if (obj.is_announcement) return obj; else return null; } } }; export default MessageResolvers;