Damien Broqua
23c58459af
Issues : * [x] Pouvoir partager sa collection #1 * [x] Exporter sa collection #2 * [x] Pouvoir visualiser le détail d'un album #3 * [x] Pouvoir visualiser les médias d'un album #5 * [x] Avoir un titre distinct par page #29 * [x] Avoir des statistiques avec Matomo #30 * [x] Avoir un logo pour les pages d'erreurs #32 Co-authored-by: dbroqua <contact@darkou.fr> Reviewed-on: #26
46 lines
968 B
JavaScript
46 lines
968 B
JavaScript
import Joi from "joi";
|
|
|
|
import UsersModel from "../models/users";
|
|
|
|
/**
|
|
* Classe permettant la gestion de l'utilisateur connecté
|
|
*/
|
|
class Me {
|
|
constructor(req) {
|
|
this.req = req;
|
|
}
|
|
|
|
/**
|
|
* Méthode permettant de modifier le profil d'un utilisateur
|
|
* @return {Object}
|
|
*/
|
|
async patchMe() {
|
|
const { body, user } = this.req;
|
|
|
|
const schema = Joi.object({
|
|
isPublicCollection: Joi.boolean(),
|
|
});
|
|
|
|
const value = await schema.validateAsync(body);
|
|
const update = await UsersModel.findByIdAndUpdate(
|
|
user._id,
|
|
{ $set: value },
|
|
{ new: true }
|
|
);
|
|
|
|
await new Promise((resolve, reject) => {
|
|
this.req.login(update, (err) => {
|
|
if (err) {
|
|
return reject(err);
|
|
}
|
|
|
|
return resolve(null);
|
|
});
|
|
});
|
|
|
|
return update;
|
|
}
|
|
}
|
|
|
|
export default Me;
|