Mise à jour et ajout de controllers, routes, services et utilities
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
class DateUtilities {
|
||||
static getDateString() {
|
||||
let today = new Date();
|
||||
let dateNow = today.toLocaleDateString();
|
||||
return `${dateNow}`;
|
||||
}
|
||||
|
||||
static getTimeString() {
|
||||
let today = new Date();
|
||||
let timeNow = today.toLocaleTimeString();
|
||||
return `${timeNow}`;
|
||||
}
|
||||
|
||||
static getDateTimeString(delimiter = true) {
|
||||
let today = new Date();
|
||||
let dateString = `${today.toLocaleDateString()} ${today.toLocaleTimeString()}`;
|
||||
if (delimiter) {
|
||||
dateString = `[${dateString}]`;
|
||||
}
|
||||
return dateString;
|
||||
}
|
||||
|
||||
static getDateTimeISOString(delimiter = true) {
|
||||
let today = new Date();
|
||||
let dateString = today.toISOString();
|
||||
if (delimiter) {
|
||||
dateString = `[${dateString}]`;
|
||||
}
|
||||
return dateString;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = DateUtilities;
|
||||
@@ -1,8 +1,9 @@
|
||||
class ErrorResponse extends Error {
|
||||
constructor(message, statusCode) {
|
||||
super(message);
|
||||
this.statusCode = statusCode;
|
||||
}
|
||||
constructor(errorType, statusCode, message = '') {
|
||||
super(message);
|
||||
this.statusCode = statusCode;
|
||||
this.errorType = errorType;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ErrorResponse;
|
||||
|
||||
+26
-17
@@ -9,7 +9,7 @@ const appendTagList = (articleTags, article) => {
|
||||
const appendFavorites = async (loggedUser, article) => {
|
||||
console.log("article: ", article);
|
||||
//const favorited = await article.hasUser(loggedUser ? loggedUser : null);
|
||||
const favorited = await article.hasUserIdUsers(loggedUser ? loggedUser : null);
|
||||
const favorited = await article.hasArticleFavoriteUsers(loggedUser ? loggedUser : null);
|
||||
article.dataValues.favorited = loggedUser ? favorited : false;
|
||||
|
||||
//const favoritesCount = await article.countUsers();
|
||||
@@ -18,23 +18,32 @@ const appendFavorites = async (loggedUser, article) => {
|
||||
};
|
||||
|
||||
const appendFollowers = async (loggedUser, toAppend) => {
|
||||
// If toAppend has an author (it's an Article)
|
||||
if (toAppend?.author) {
|
||||
const author = await toAppend.getAuthor();
|
||||
//const following = await author.hasFollower(loggedUser ? loggedUser : null);
|
||||
const following = await author.hasFollowerIdUsers(loggedUser ? loggedUser : null);
|
||||
toAppend.author.dataValues.following = loggedUser ? following : false;
|
||||
|
||||
const followersCount = await author.countFollowers();
|
||||
toAppend.author.dataValues.followersCount = followersCount;
|
||||
} else {
|
||||
const following = await toAppend.hasFollowerIdUsers(
|
||||
loggedUser ? loggedUser : null
|
||||
);
|
||||
toAppend.dataValues.following = loggedUser ? following : false;
|
||||
|
||||
const followersCount = await toAppend.countFollowers();
|
||||
toAppend.dataValues.followersCount = followersCount;
|
||||
await appendArticleFollowers(loggedUser, toAppend);
|
||||
} else if (toAppend?.id && toAppend?.hasUserIdUserFollower) {
|
||||
// toAppend is a User model
|
||||
await appendUserFollowers(loggedUser, toAppend);
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = { appendTagList, appendFavorites, appendFollowers };
|
||||
const appendArticleFollowers = async (loggedUser, article) => {
|
||||
// Append follower info to an article's author
|
||||
const author = await article.getAuthor();
|
||||
const following = loggedUser ? await author.hasUserIdUserFollower(loggedUser) : false;
|
||||
article.author.dataValues.following = following;
|
||||
|
||||
const followersCount = await author.countFollowers();
|
||||
article.author.dataValues.followersCount = followersCount;
|
||||
};
|
||||
|
||||
const appendUserFollowers = async (loggedUser, user) => {
|
||||
// Append follower info to a user
|
||||
const following = loggedUser ? await user.hasUserIdUserFollower(loggedUser) : false;
|
||||
user.dataValues.following = following;
|
||||
|
||||
const followersCount = await user.countFollowers();
|
||||
user.dataValues.followersCount = followersCount;
|
||||
};
|
||||
|
||||
module.exports = { appendTagList, appendFavorites, appendFollowers, appendArticleFollowers, appendUserFollowers };
|
||||
|
||||
+6
-30
@@ -1,31 +1,7 @@
|
||||
const chalk = require('chalk');
|
||||
const DateUtilities = require('./dateUtilities');
|
||||
|
||||
const utils = {
|
||||
getDateString: () => {
|
||||
let today = new Date();
|
||||
let dateNow = today.toLocaleDateString();
|
||||
return `${dateNow}`;
|
||||
},
|
||||
getTimeString: () => {
|
||||
let today = new Date();
|
||||
let timeNow = today.toLocaleTimeString();
|
||||
return `${timeNow}`;
|
||||
},
|
||||
getDateTimeString: (delimiter = true) => {
|
||||
let today = new Date();
|
||||
let dateString = `${today.toLocaleDateString()} ${today.toLocaleTimeString()}`;
|
||||
if (delimiter) {
|
||||
dateString = `[${dateString}]`;
|
||||
}
|
||||
return dateString;
|
||||
},
|
||||
getDateTimeISOString: (delimiter = true) => {
|
||||
let today = new Date();
|
||||
let dateString = today.toISOString();
|
||||
if (delimiter) {
|
||||
dateString = `[${dateString}]`;
|
||||
}
|
||||
return dateString;
|
||||
},
|
||||
async fetchSkydiverIdApi(path, query) {
|
||||
let limit = 50;
|
||||
let offset = 0;
|
||||
@@ -61,20 +37,20 @@ const utils = {
|
||||
//const response = await fetch(url, options);
|
||||
return fetch(url, options).then(function (response) {
|
||||
if (response.status >= 200 && response.status < 400) {
|
||||
console.log(`${utils.getDateTimeISOString()}`, chalk.green(`Réception des sauts via SkydiverId API`), `${response.status} ${response.statusText}`);
|
||||
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.green(`Réception des sauts via SkydiverId API`), `${response.status} ${response.statusText}`);
|
||||
const data = response.json();
|
||||
return data;
|
||||
} else {
|
||||
console.log(`${utils.getDateTimeISOString()}`, chalk.red(`Erreur ${response.status} ${response.statusText}`));
|
||||
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.red(`Erreur ${response.status} ${response.statusText}`));
|
||||
return { errors: { name: response.statusText, message: `Une erreur ${response.status} '${response.statusText}' est survenue lors de la récupération des sauts via SkydiverId API`, type: 'API Error', code: response.status } };
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.log(`${utils.getDateTimeISOString()}`, chalk.red(`A fetchSkydiverIdApi error occured ${error.code} ${error.type}`));
|
||||
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.red(`A fetchSkydiverIdApi error occured ${error.code} ${error.type}`));
|
||||
return { errors: { name: error.name, message: `A fetchSkydiverIdApi error occured : ${error.message}`, type: error.type, code: error.code } };
|
||||
});
|
||||
} catch (error) {
|
||||
console.log(`${utils.getDateTimeISOString()}`, chalk.red(`fetchSkydiverIdApi error`));
|
||||
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.red(`fetchSkydiverIdApi error`));
|
||||
return { errors: { name: error.name, message: error.message, type: error.type, code: error.code } };
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user