Mise à jour et ajout de controllers, routes, services et utilities

This commit is contained in:
2025-11-30 17:54:01 +01:00
parent bcf107cd1f
commit 9355431730
36 changed files with 978 additions and 842 deletions
+2 -2
View File
@@ -11,10 +11,10 @@ routes.use('/qcm', require('./v1/qcm'));
routes.use('/user', require('./v2/user.routes'));
routes.use('/articles', require('./v2/articles.routes'));
routes.use('/comment', require('./v2/comment.routes'));
routes.use('/comments', require('./v2/comments.routes'));
routes.use('/product', require('./v2/product.routes'));
routes.use('/products', require('./v2/products.routes'));
routes.use('/tag', require('./v2/tag.routes'));
routes.use('/tags', require('./v2/tags.routes'));
routes.use('/clans', require('./v3/clans.routes'));
+11 -10
View File
@@ -6,8 +6,9 @@ var router = require('express').Router(),
X2DataLog = mongoose.model('X2DataLog');
const auth = require('../../../middlewares/auth'),
chalk = require('chalk'),
queries = require('../../queries'),
utils = require('../../utils');
queries = require('../../queries');
const DateUtilities = require('../../../utils/dateUtilities');
const utils = require('../../../utils');
// Preload jump objects on routes with ':jump'
router.param('jump', function (req, res, next, slug) {
@@ -280,9 +281,9 @@ router.get('/allFromSkydiverIdApi', auth.required, function (req, res, next) {
}
utils.fetchSkydiverIdApi('jumps', req.query).then(result => {
if (result.errors === undefined) {
console.log(`${utils.getDateTimeISOString()}`, chalk.green(`Réception des sauts SkydiverId`));
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.green(`Réception des sauts SkydiverId`));
} else {
console.log(`${utils.getDateTimeISOString()}`, chalk.red(`Une erreur ${result.errors.code} '${result.errors.type}' est survenue lors de la réception des sauts SkydiverId : ${result.errors.name} ${result.errors.message}`));
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.red(`Une erreur ${result.errors.code} '${result.errors.type}' est survenue lors de la réception des sauts SkydiverId : ${result.errors.name} ${result.errors.message}`));
}
return res.json({
jumps: result,
@@ -491,11 +492,11 @@ router.post('/kml/:jump', auth.required, function (req, res, next) {
//console.log(chalk.yellow(`jump/${req.jump.x2data.id}/kml`));
return res.json({ file: file.toJSONForJump() });
/*
utils.fetchSkydiverIdApi(`jump/${req.jump.x2data.id}/kml`, {}).then(result => {
DateUtilities.fetchSkydiverIdApi(`jump/${req.jump.x2data.id}/kml`, {}).then(result => {
if (result.errors === undefined) {
console.log(`${utils.getDateTimeISOString()}`, chalk.green(`Réception de l'url du fichier kml SkydiverId`));
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.green(`Réception de l'url du fichier kml SkydiverId`));
} else {
console.log(`${utils.getDateTimeISOString()}`, chalk.red(`Une erreur ${result.errors.code} '${result.errors.type}' est survenue lors de la réception de l'url du fichier kml SkydiverId : ${result.errors.name} ${result.errors.message}`));
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.red(`Une erreur ${result.errors.code} '${result.errors.type}' est survenue lors de la réception de l'url du fichier kml SkydiverId : ${result.errors.name} ${result.errors.message}`));
}
if (result.url !== undefined) {
console.log(chalk.green(result.url));
@@ -509,11 +510,11 @@ router.post('/kml/:jump', auth.required, function (req, res, next) {
return file.save().then(function () {
Jump.updateOne({_id: req.jump._id}, {files: files}).then(function () {
utils.fetchSkydiverIdApi(`jump/${req.jump.x2data.id}/kml`, {}).then(result => {
DateUtilities.fetchSkydiverIdApi(`jump/${req.jump.x2data.id}/kml`, {}).then(result => {
if (result.errors === undefined) {
console.log(`${utils.getDateTimeISOString()}`, chalk.green(`Réception de l'url du fichier kml SkydiverId`));
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.green(`Réception de l'url du fichier kml SkydiverId`));
} else {
console.log(`${utils.getDateTimeISOString()}`, chalk.red(`Une erreur ${result.errors.code} '${result.errors.type}' est survenue lors de la réception de l'url du fichier kml SkydiverId : ${result.errors.name} ${result.errors.message}`));
console.log(`${DateUtilities.getDateTimeISOString()}`, chalk.red(`Une erreur ${result.errors.code} '${result.errors.type}' est survenue lors de la réception de l'url du fichier kml SkydiverId : ${result.errors.name} ${result.errors.message}`));
}
if (result.url !== undefined) {
console.log(result.url);
+3 -3
View File
@@ -1,10 +1,10 @@
const express = require('express');
const {
articlesFeed,
createArticle,
deleteArticle,
getArticle,
getArticles,
createArticle,
articlesFeed,
deleteArticle,
updateArticle,
addFavoriteArticle,
deleteFavoriteArticle
@@ -1,10 +1,11 @@
const express = require('express');
const { createTag, getAllTags } = require('../../../controllers/tag.controller');
const { createTag, deleteTag, getAllTags } = require('../../../controllers/tag.controller');
const auth = require('../../../middlewares/auth');
const tagRouter = express.Router();
tagRouter.post('/', auth.required, createTag);
tagRouter.get('/', auth.optional, getAllTags);
tagRouter.delete('/:name', auth.required, deleteTag);
module.exports = tagRouter;
+5 -2
View File
@@ -1,5 +1,5 @@
const express = require('express');
const { authenticate, createUser, getUser, loginAsUser, updateUser } = require('../../../controllers/user.controller');
const { authenticate, createUser, getUser, loginAsUser, updateUser, addFollowUser, deleteFollowUser } = require('../../../controllers/user.controller');
const auth = require('../../../middlewares/auth');
const userRouter = express.Router();
@@ -8,8 +8,11 @@ userRouter.get('/', auth.required, getUser);
userRouter.put('/', auth.required, updateUser);
userRouter.post('/', auth.optional, createUser);
userRouter.get('/authenticate', auth.optional, authenticate);
//userRouter.get('/users', auth.required, getAllUsers);
userRouter.post('/login', auth.optional, loginAsUser);
//userRouter.post('/register', auth.optional, createUser);
//userRouter.get('/users', auth.required, getAllUsers);
userRouter.post('/:username/follow', auth.required, addFollowUser);
userRouter.delete('/:username/follow', auth.required, deleteFollowUser);
module.exports = userRouter;
-83
View File
@@ -1,83 +0,0 @@
const chalk = require('chalk');
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;
let args = '';
if (typeof query.limit !== 'undefined') {
limit = query.limit;
}
if (typeof query.offset !== 'undefined') {
offset = ((query.offset/limit)+1);
}
if (offset > 1) {
args += `&page=${offset}`;
}
if (typeof query.dateRangeStart !== 'undefined' && typeof query.dateRangeEnd !== 'undefined') {
args += `&filter[and][0][date][gte]=${query.dateRangeStart}`;
args += `&filter[and][0][date][lte]=${query.dateRangeEnd}`;
}
try {
let url = `${process.env.SKYDIVERID_API_URL}/${path}`;
if (typeof query.limit !== 'undefined') {
url += `?per-page=${limit}${args}`;
}
/* url pour provoquer une erreur en dev : url = `https://www.goldapi.ioppppp/api/${price.metal}/${price.currency}`; */
let options = {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.SKYDIVERID_API_TOKEN}`,
'Content-Type': 'application/json'
},
redirect: 'follow'
};
/* Pour tester le retour d'erreur : return { errors: { name: 'error name', message: 'error message', type: 'TYPE', code: 'CODE' } }; */
//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}`);
const data = response.json();
return data;
} else {
console.log(`${utils.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}`));
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`));
return { errors: { name: error.name, message: error.message, type: error.type, code: error.code } };
}
}
};
module.exports = utils;