forked from dbroqua/MusicTopus
Some changes in structure + add album
This commit is contained in:
parent
3ebdc9c06a
commit
f08e70eb7c
36 changed files with 883 additions and 165 deletions
21
src/libs/error.js
Normal file
21
src/libs/error.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
/**
|
||||
* Classe permettant la gestion des erreurs personilisées
|
||||
*/
|
||||
class ErrorEvent extends Error {
|
||||
/**
|
||||
* @param {Number} errorCode
|
||||
* @param {Mixed} ...params
|
||||
*/
|
||||
constructor(errorCode, ...params) {
|
||||
super(...params);
|
||||
|
||||
if (Error.captureStackTrace) {
|
||||
Error.captureStackTrace(this, ErrorEvent);
|
||||
}
|
||||
|
||||
this.errorCode = parseInt(errorCode, 10);
|
||||
this.date = new Date();
|
||||
}
|
||||
}
|
||||
|
||||
export default ErrorEvent;
|
|
@ -1,3 +1,39 @@
|
|||
/**
|
||||
* Fonction permettant de formater une réponse basée sur la méthode utilisée
|
||||
* @param {Object} req
|
||||
* @param {Object} res
|
||||
* @param {Object} data
|
||||
*
|
||||
* @return {Object}
|
||||
*/
|
||||
export const sendResponse = (req, res, data) => {
|
||||
let status = 200;
|
||||
const path = req.route.path.split("/");
|
||||
|
||||
switch (req.method) {
|
||||
case "GET":
|
||||
// INFO: On regarde de quel type de get il s'agit (liste ou item)
|
||||
if (path[path.length - 1].indexOf(":") === 0) {
|
||||
// INFO: Cas d'un item
|
||||
status = !data ? 404 : 200;
|
||||
} else {
|
||||
// INFO: Cas d'une liste
|
||||
status =
|
||||
data.rows === undefined || data.rows.length > 0 ? 200 : 204;
|
||||
}
|
||||
|
||||
return res.status(status).json(data).end();
|
||||
case "PATCH":
|
||||
return res.status(200).json(data).end();
|
||||
case "DELETE":
|
||||
return res.status(200).json(data).end();
|
||||
case "POST":
|
||||
return res.status(201).json(data).end();
|
||||
default:
|
||||
return res.status(500).json({ message: "Not implemented" });
|
||||
}
|
||||
};
|
||||
|
||||
export default (res, page) => {
|
||||
res.status(200).render("index", page.render());
|
||||
};
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
/* eslint-disable func-names */
|
||||
const mongoose = require("mongoose");
|
||||
const LocalStrategy = require("passport-local").Strategy;
|
||||
const { BasicStrategy } = require("passport-http");
|
||||
|
||||
const Users = mongoose.model("Users");
|
||||
|
||||
|
@ -36,4 +37,22 @@ module.exports = function (passport) {
|
|||
}
|
||||
)
|
||||
);
|
||||
passport.use(
|
||||
"basic",
|
||||
new BasicStrategy((email, password, done) => {
|
||||
Users.findOne({ email })
|
||||
.then((user) => {
|
||||
if (!user || !user.validPassword(password)) {
|
||||
return done(
|
||||
null,
|
||||
false,
|
||||
"Oops! Identifiants incorrects"
|
||||
);
|
||||
}
|
||||
|
||||
return done(null, user);
|
||||
})
|
||||
.catch(done);
|
||||
})
|
||||
);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue