From d8195dbf31e69f2c9748bd5618dd694e365c7609 Mon Sep 17 00:00:00 2001 From: Julien Gautier Date: Sat, 21 Mar 2026 02:30:46 +0100 Subject: [PATCH] Controller and Model updates --- ...e.controller.js => articles.controller.js} | 0 ...clan.controller.js => clans.controller.js} | 0 ...t.controller.js => comments.controller.js} | 0 ...er.controller.js => members.controller.js} | 0 src/controllers/profiles.controller.js | 52 +++++++++++++++++++ .../{tag.controller.js => tags.controller.js} | 0 src/controllers/user.controller.js | 27 +--------- src/database/models/mongo/herowars/Clan.js | 2 +- src/database/models/mongo/herowars/Member.js | 2 +- 9 files changed, 55 insertions(+), 28 deletions(-) rename src/controllers/{article.controller.js => articles.controller.js} (100%) rename src/controllers/{clan.controller.js => clans.controller.js} (100%) rename src/controllers/{comment.controller.js => comments.controller.js} (100%) rename src/controllers/{member.controller.js => members.controller.js} (100%) create mode 100644 src/controllers/profiles.controller.js rename src/controllers/{tag.controller.js => tags.controller.js} (100%) diff --git a/src/controllers/article.controller.js b/src/controllers/articles.controller.js similarity index 100% rename from src/controllers/article.controller.js rename to src/controllers/articles.controller.js diff --git a/src/controllers/clan.controller.js b/src/controllers/clans.controller.js similarity index 100% rename from src/controllers/clan.controller.js rename to src/controllers/clans.controller.js diff --git a/src/controllers/comment.controller.js b/src/controllers/comments.controller.js similarity index 100% rename from src/controllers/comment.controller.js rename to src/controllers/comments.controller.js diff --git a/src/controllers/member.controller.js b/src/controllers/members.controller.js similarity index 100% rename from src/controllers/member.controller.js rename to src/controllers/members.controller.js diff --git a/src/controllers/profiles.controller.js b/src/controllers/profiles.controller.js new file mode 100644 index 0000000..36de222 --- /dev/null +++ b/src/controllers/profiles.controller.js @@ -0,0 +1,52 @@ +const { UserService } = require('../services'); +const asyncHandler = require("../middlewares/asyncHandler"); +const ErrorResponse = require("../utils/errorResponse"); + +module.exports.addFollowUser = asyncHandler(async (req, res, next) => { + try { + return res.status(200).json({ + message: 'The user is now being followed.' + }); + } catch (err) { + return next(new ErrorResponse('Something went wrong while following a user.', 500, err.message)); + } +}); + +module.exports.deleteFollowUser = asyncHandler(async (req, res, next) => { + try { + return res.status(200).json({ + message: 'The user is no longer being followed.', + user: true + }); + } catch (err) { + return next(new ErrorResponse('Something went wrong while unfollowing a user.', 500, err.message)); + } +}); + +module.exports.getProfile = asyncHandler(async (req, res, next) => { + try { + console.log(req.profile) + /*const user = await UserService.getUserById(req.payload.id); + if (!user) { + return next(new ErrorResponse("Unauthorized", 401, "Authentication required.")); + }*/ + res.status(200).json({ + user: req.profile.toProfileJSONFor() + }); + } catch (err) { + return next(new ErrorResponse('Something went wrong while fetching user.', 500, err.message)); + } +}); + +module.exports.getParamUsername = async (req, res, next, value) => { + try { + const user = await UserService.getUserByUsername(value); + if (!user) { + return next(new ErrorResponse("User not found", 404)); + } + req.profile = user; + return next(); + } catch (err) { + return next(new ErrorResponse('Something went wrong while fetching user.', 500, err.message)); + } +}; \ No newline at end of file diff --git a/src/controllers/tag.controller.js b/src/controllers/tags.controller.js similarity index 100% rename from src/controllers/tag.controller.js rename to src/controllers/tags.controller.js diff --git a/src/controllers/user.controller.js b/src/controllers/user.controller.js index d455b65..aa5bea8 100644 --- a/src/controllers/user.controller.js +++ b/src/controllers/user.controller.js @@ -4,18 +4,6 @@ const ErrorResponse = require("../utils/errorResponse"); var crypto = require('crypto'); const passport = require('passport'); - -module.exports.addFollowUser = asyncHandler(async (req, res, next) => { - try { - return res.status(200).json({ - message: 'The user is now being followed.', - user: true - }); - } catch (err) { - return next(new ErrorResponse('Something went wrong while following a user.', 500, err.message)); - } -}); - module.exports.authenticate = asyncHandler(async (req, res, next) => { try { passport.authenticate('headerapikey', { session: false }, function (err, application, info) { @@ -44,7 +32,6 @@ module.exports.authenticate = asyncHandler(async (req, res, next) => { module.exports.createUser = asyncHandler(async (req, res, next) => { try { - fieldValidation(req.body.user.username, next); fieldValidation(req.body.user.email, next); fieldValidation(req.body.user.password, next); @@ -76,17 +63,6 @@ module.exports.createUser = asyncHandler(async (req, res, next) => { } }); -module.exports.deleteFollowUser = asyncHandler(async (req, res, next) => { - try { - return res.status(200).json({ - message: 'The user is no longer being followed.', - user: true - }); - } catch (err) { - return next(new ErrorResponse('Something went wrong while unfollowing a user.', 500, err.message)); - } -}); - module.exports.getAllUsers = asyncHandler(async (req, res, next) => { try { const users = await UserService.getAllUsers(); @@ -107,8 +83,7 @@ module.exports.getUser = asyncHandler(async (req, res, next) => { } res.status(200).json({ - user: user.toAuthJSON(), - uuid: crypto.randomUUID() + user: user.toAuthJSON() }); } catch (err) { return next(new ErrorResponse('Something went wrong while fetching user.', 500, err.message)); diff --git a/src/database/models/mongo/herowars/Clan.js b/src/database/models/mongo/herowars/Clan.js index 5241489..e5ae75c 100644 --- a/src/database/models/mongo/herowars/Clan.js +++ b/src/database/models/mongo/herowars/Clan.js @@ -24,7 +24,7 @@ var HWClanSchema = new mongoose.Schema({ title: String, topActivity: String, topDungeon: String, - author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } + author: { type: mongoose.Schema.Types.UUID, ref: 'User' } }, {timestamps: true, toJSON: {virtuals: true}}); HWClanSchema.plugin(uniqueValidator, { message: 'is already taken' }); diff --git a/src/database/models/mongo/herowars/Member.js b/src/database/models/mongo/herowars/Member.js index 208b8a2..12e31c6 100644 --- a/src/database/models/mongo/herowars/Member.js +++ b/src/database/models/mongo/herowars/Member.js @@ -104,7 +104,7 @@ var HWMemberSchema = new mongoose.Schema({ scoreGifts: Number, warGifts: Number, rewards: Number, - author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' } + author: { type: mongoose.Schema.Types.UUID, ref: 'User' } }, {timestamps: true, toJSON: {virtuals: true}}); HWMemberSchema.plugin(uniqueValidator, { message: 'is already taken' });