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

fonctions de fetch de message

parent 1f03ff14
No related branches found
No related tags found
No related merge requests found
...@@ -335,26 +335,60 @@ export const getUser = (user, uid) => { ...@@ -335,26 +335,60 @@ export const getUser = (user, uid) => {
return result; return result;
}; };
// All these messages are returned if they are visible
export async function getAnnouncement(user, messageID){
let res = await knex.select().from('announcements').where('id', messageID)
.whereIn('id', await selectors.visibleAnnouncements(user));
if(res[0]){
res[0].type = 'Announcement';
return res[0];
}
res = await knex.select().from('events').where('id', messageID)
.whereIn('id', await selectors.visibleEvents(user));
if(res[0]){
res[0].type = 'Announcement';
return res[0];
}
return undefined;
}
export async function getEvent(user, messageID){
let res = await knex.select().from('events').where('id', messageID)
.whereIn('id', await selectors.visibleEvents(user));
if(res[0]){
res[0].type = 'Event';
return res[0];
}
return undefined;
}
/** export async function getPrivatePost(user, messageID){
* @summary Renvoie un message en fonction de son identifiant. let res = await knex.select().from('private_posts').where('id', messageID)
* @param {*} user - Utilisateur effectuant la requête. .whereIn('id', await selectors.visiblePrivatePosts(user));
* @param {*} eventID - Identifiant unique de l'événement. if(res[0]){
* @rights super res[0].type = 'PrivatePost';
*/ return res[0];
export async function getMessage(user, messageID){
let announcement = await knex.select().from('announcements').where('id', messageID);
if(announcement){
let res = announcement[0];
res.type = "Announcement";
return res;
} }
let event = await knex.select().from('events').where('id', messageID); return undefined;
if(event){ }
let res = event[0];
res.type = "Event"; export async function getQuestion(user, messageID){
return res; let res = await knex.select().from('questions').where('id', messageID)
.whereIn('id', await selectors.visibleQuestions(user));
if(res[0]){
res[0].type = 'Question';
return res[0];
}
return undefined;
}
export async function getAnswer(user, messageID){
let res = await knex.select().from('answers').where('id', messageID)
.whereIn('id', await selectors.visibleAnswers(user));
if(res[0]){
res[0].type = 'Answer';
return res[0];
} }
return undefined; return undefined;
} }
...@@ -365,24 +399,64 @@ export async function getMessage(user, messageID){ ...@@ -365,24 +399,64 @@ export async function getMessage(user, messageID){
* @param {*} eventID - Identifiant unique de l'événement. * @param {*} eventID - Identifiant unique de l'événement.
* @rights super * @rights super
*/ */
export async function getMessageIfVisible(user, messageID){ export async function getMessage(user, messageID){
let announcement = await knex return getEvent(user, messageID) |
.with('visible_announcements', await selectors.visibleAnnouncements(user)) getAnnouncement(user, messageID) |
.select().from('visible_announcements').where('id', messageID); getPrivatePost(user, messageID) |
if(announcement){ getQuestion(user, messageID) |
let res = announcement[0]; getAnswer(user, messageID);
res.type = "Announcement"; }
return res;
export async function allVisibleEvents(user){
let selection = await selectors.visibleEvents(user);
let result = await knex.select().from('events').whereIn('id', selection);
for(r of result){
r.type = 'Announcement';
} }
let event = await knex return result;
.with('visible_events', await selectors.visibleEvents(user)) }
.select().from('visible_events').where('id', messageID);
if(event){ export async function allVisibleAnnouncements(user){
let res = event[0]; let selection = await selectors.visibleAnnouncements(user);
res.type = "Event"; let result = await knex.select().from('announcements').whereIn('id', selection);
return res; result = result.concat(
await knex.select().from('events').whereIn('id', selection)
);
for(r of result){
r.type = 'Announcement';
} }
return undefined; return result;
}
export async function allVisiblePrivatePosts(user){
let selection = await selectors.visiblePrivatePosts(user);
let result = await knex.select().from('private_posts').whereIn('id', selection);
for(r of result){
r.type = 'PrivatePost';
}
return result;
}
export async function allVisibleQuestions(user){
let selection = await selectors.visibleQuestions(user);
let result = await knex.select().from('questions').whereIn('id', selection);
for(r of result){
r.type = 'Question';
}
return result;
}
export async function allVisibleAnswers(user){
let selection = await selectors.visibleAnswers(user);
let result = await knex.select().from('answers').whereIn('id', selection);
for(r of result){
r.type = 'Answer';
}
return result;
}
export async function visibleMessages(user, messageID){
} }
export async function getMessageAuthor(user, messageID){ export async function getMessageAuthor(user, messageID){
...@@ -449,13 +523,6 @@ export const getMetaGroup = (user, groupUID) => { ...@@ -449,13 +523,6 @@ export const getMetaGroup = (user, groupUID) => {
return knex.select().from('meta_groups').where('uid',groupUID).then(results => results [0]); return knex.select().from('meta_groups').where('uid',groupUID).then(results => results [0]);
}; };
export async function getEvent(user, eventID){
// console.log(eventID);
let event_list = await knex('events').select().where('id', eventID);
// console.log(event_list);
return event_list[0];
}
/** /**
* @summary Refuse une requête d'un groupe voulant rejoindre un évènement * @summary Refuse une requête d'un groupe voulant rejoindre un évènement
* @arg {Object} user - Représente l'utilisateur qui a effectué la requête. * @arg {Object} user - Représente l'utilisateur qui a effectué la requête.
......
...@@ -63,6 +63,25 @@ export async function visibleEvents(user){ ...@@ -63,6 +63,25 @@ export async function visibleEvents(user){
}; };
} }
export async function visiblePrivatePosts(user){
return query_builder => {
return query_builder;
};
}
export async function visibleQuestions(user){
return query_builder => {
return query_builder;
};
}
export async function visibleAnswers(user){
return query_builder => {
return query_builder;
};
}
export async function messageHosts(user, messageID){ export async function messageHosts(user, messageID){
return function(query_builder){ return function(query_builder){
return query_builder.select({uid : 'group'}).from('group_message_relationships') return query_builder.select({uid : 'group'}).from('group_message_relationships')
......
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