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) => {
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;
}
/**
* @summary Renvoie un message en fonction de son identifiant.
* @param {*} user - Utilisateur effectuant la requête.
* @param {*} eventID - Identifiant unique de l'événement.
* @rights super
*/
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;
export async function getPrivatePost(user, messageID){
let res = await knex.select().from('private_posts').where('id', messageID)
.whereIn('id', await selectors.visiblePrivatePosts(user));
if(res[0]){
res[0].type = 'PrivatePost';
return res[0];
}
let event = await knex.select().from('events').where('id', messageID);
if(event){
let res = event[0];
res.type = "Event";
return res;
return undefined;
}
export async function getQuestion(user, messageID){
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;
}
......@@ -365,24 +399,64 @@ export async function getMessage(user, messageID){
* @param {*} eventID - Identifiant unique de l'événement.
* @rights super
*/
export async function getMessageIfVisible(user, messageID){
let announcement = await knex
.with('visible_announcements', await selectors.visibleAnnouncements(user))
.select().from('visible_announcements').where('id', messageID);
if(announcement){
let res = announcement[0];
res.type = "Announcement";
return res;
export async function getMessage(user, messageID){
return getEvent(user, messageID) |
getAnnouncement(user, messageID) |
getPrivatePost(user, messageID) |
getQuestion(user, messageID) |
getAnswer(user, messageID);
}
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
.with('visible_events', await selectors.visibleEvents(user))
.select().from('visible_events').where('id', messageID);
if(event){
let res = event[0];
res.type = "Event";
return res;
return result;
}
export async function allVisibleAnnouncements(user){
let selection = await selectors.visibleAnnouncements(user);
let result = await knex.select().from('announcements').whereIn('id', selection);
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){
......@@ -449,13 +523,6 @@ export const getMetaGroup = (user, groupUID) => {
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
* @arg {Object} user - Représente l'utilisateur qui a effectué la requête.
......
......@@ -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){
return function(query_builder){
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