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
+66
View File
@@ -0,0 +1,66 @@
var mongoose = require('mongoose'),
HWClan = mongoose.model('HWClan');
class ClanService {
static async createClan(data) {
let clan = new HWClan();
Object.assign(clan, data);
return clan.save().then(function () {
return ClanService.getClanById(data.id);
});
}
static async getAllClans(query, limit, offset) {
return Promise.all([
HWClan.find(query)
.skip(Number(offset))
.limit(Number(limit))
.sort({ title: 'asc' })
.populate('author')
.exec(),
HWClan.count(query).exec()
]).then(function (results) {
const clans = results[0];
const clansCount = results[1];
return {
clans: clans,
clansCount: clansCount
};
});
}
static async getClanById(id) {
return HWClan.findOne({ id: id })
.populate('author')
.then(function (clan) {
if (!clan) {
return null;
}
return clan;
});
}
static async getClanByTitle(title) {
return HWClan.findOne({ title: title })
.populate('author')
.then(function (clan) {
if (!clan) {
return null;
}
return clan;
});
}
static async updateClan(data) {
return data.save().then(function () {
return ClanService.getClanById(data.id);
});
}
static async deleteClan(data) {
return data.remove();
}
}
module.exports = ClanService;
+5
View File
@@ -0,0 +1,5 @@
/**
* Mongoose models for MongoDB
*/
exports.ClanService = require('./clan.service');
exports.MemberService = require('./member.service');
+66
View File
@@ -0,0 +1,66 @@
var mongoose = require('mongoose'),
HWMember = mongoose.model('HWMember');
class MemberService {
static async createMember(data) {
let member = new HWMember();
Object.assign(member, data);
return member.save().then(function () {
return MemberService.getMemberById(data.id);
});
}
static async getAllMembers(query, limit, offset) {
return Promise.all([
HWMember.find(query)
.skip(Number(offset))
.limit(Number(limit))
.sort({ name: 'asc' })
.populate('author')
.exec(),
HWMember.count(query).exec()
]).then(function (results) {
const members = results[0];
const membersCount = results[1];
return {
members: members,
membersCount: membersCount
};
});
}
static async getMemberById(id) {
return HWMember.findOne({ id: id })
.populate('author')
.then(function (member) {
if (!member) {
return null;
}
return member;
});
}
static async getMemberByName(name) {
return HWMember.findOne({ name: name })
.populate('author')
.then(function (member) {
if (!member) {
return null;
}
return member;
});
}
static async updateMember(data) {
return data.save().then(function () {
return MemberService.getMemberById(data.id);
});
}
static async deleteMember(data) {
return data.remove();
}
}
module.exports = MemberService;