Refactoring et ajout de routes Hero Wars

This commit is contained in:
2025-11-27 10:50:17 +01:00
parent c9ce3f343e
commit 60feffd929
47 changed files with 1224 additions and 236 deletions
@@ -0,0 +1,55 @@
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var HWClanSchema = new mongoose.Schema({
id: { type: String, unique: true },
country: String,
description: String,
disbanding: Boolean,
frameId: Number,
icon: {
flagColor1: Number,
flagColor2: Number,
flagShape: Number,
iconColor: Number,
iconShape: Number,
},
level: String,
members: [{ type: mongoose.Schema.Types.ObjectId, ref: 'HWMember' }],
membersCount: Number,
minLevel: String,
ownerId: String,
/*roleNames: { type: mongoose.Schema.Types.ObjectId, ref: 'HWClanRoles' },*/
serverId: String,
title: String,
topActivity: String,
topDungeon: String,
author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
}, {timestamps: true, toJSON: {virtuals: true}});
HWClanSchema.plugin(uniqueValidator, { message: 'is already taken' });
HWClanSchema.methods.toJSONFor = function() {
return {
id: this.id,
country: this.country,
description: this.description,
disbanding: this.disbanding,
frameId: this.frameId,
icon: this.icon,
level: this.level,
members: this.members,
membersCount: this.membersCount,
minLevel: this.minLevel,
ownerId: this.ownerId,
serverId: this.serverId,
title: this.title,
topActivity: this.topActivity,
topDungeon: this.topDungeon,
createdAt: this.createdAt,
updatedAt: this.updatedAt,
author: this.author.toJSONFor()
};
};
mongoose.model('HWClan', HWClanSchema);
@@ -0,0 +1,22 @@
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
var HWClanRolesSchema = new mongoose.Schema({
member: String,
officer: String,
owner: String,
warlorld: String
}, {timestamps: false, toJSON: {virtuals: true}});
HWClanRolesSchema.plugin(uniqueValidator, { message: 'is already taken' });
HWClanRolesSchema.methods.toJSONFor = function() {
return {
member: this.member,
officer: this.officer,
owner: this.owner,
warlorld: this.warlorld
};
};
mongoose.model('HWClanRoles', HWClanRolesSchema);
@@ -0,0 +1,135 @@
var mongoose = require('mongoose');
var uniqueValidator = require('mongoose-unique-validator');
/*
var HWMemberSchemaOld = new mongoose.Schema({
id: { type: String, lowercase: true, unique: true },
name: String,
lastLoginTime: String,
serverId: String,
level: String,
clanId: String,
clanRole: String,
commander: Boolean,
avatarId: String,
isChatModerator: Boolean,
frameId: Number,
leagueId: Number,
clanTitle: String,
champion: Boolean,
stat: {
activitySum: Number,
todayActivity: Number,
dungeonActivitySum: Number,
todayDungeonActivity: Number,
raidSum: Number,
wasChampion: Boolean,
todayPrestige: Number,
prestigeSum: Number,
},
inactivity: {
daysLeft: Number,
timeLeft: Number,
dropDate: Number,
dropDelay: String,
},
adventureSum: Number,
clanGiftsSum: Number,
clanWarSum: Number,
weekStat: {
activity: [Number],
dungeonActivity: [Number],
adventureStat: [Number],
clanWarStat: [Number],
prestigeStat: [Number],
clanGifts: [Number],
},
score: Number,
scoreGifts: Number,
warGifts: Number,
rewards: Number,
author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
}, {timestamps: true, toJSON: {virtuals: true}});
*/
var HWMemberSchema = new mongoose.Schema({
id: { type: String, unique: true },
allowPm: String,
avatarId: String,
clanIcon: {
flagColor1: Number,
flagColor2: Number,
flagShape: Number,
iconColor: Number,
iconShape: Number,
},
clanId: String,
clanRole: String,
clanTitle: String,
commander: Boolean,
frameId: Number,
isChatModerator: Boolean,
lastLoginTime: String,
leagueId: Number,
level: String,
name: String,
serverId: String,
champion: Boolean,
stat: {
activitySum: Number,
todayActivity: Number,
dungeonActivitySum: Number,
todayDungeonActivity: Number,
raidSum: Number,
wasChampion: Boolean,
todayPrestige: Number,
prestigeSum: Number,
},
inactivity: {
daysLeft: Number,
timeLeft: Number,
dropDate: Number,
dropDelay: String,
},
adventureSum: Number,
clanGiftsSum: Number,
clanWarSum: Number,
weekStat: {
activity: [Number],
dungeonActivity: [Number],
adventureStat: [Number],
clanWarStat: [Number],
prestigeStat: [Number],
clanGifts: [Number],
},
score: Number,
scoreGifts: Number,
warGifts: Number,
rewards: Number,
author: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
}, {timestamps: true, toJSON: {virtuals: true}});
HWMemberSchema.plugin(uniqueValidator, { message: 'is already taken' });
HWMemberSchema.methods.toJSONFor = function() {
return {
id: this.id,
allowPm: this.allowPm,
avatarId: this.avatarId,
clanIcon: this.clanIcon,
clanId: this.clanId,
clanRole: this.clanRole,
clanTitle: this.clanTitle,
commander: this.commander,
frameId: this.frameId,
isChatModerator: this.isChatModerator,
lastLoginTime: this.lastLoginTime,
leagueId: this.leagueId,
level: this.level,
name: this.name,
serverId: this.serverId,
createdAt: this.createdAt,
updatedAt: this.updatedAt,
author: this.author.toJSONFor()
};
};
mongoose.model('HWMember', HWMemberSchema);
@@ -0,0 +1 @@
exports.HWMember = require('./Member');
+2
View File
@@ -13,4 +13,6 @@ exports.X2DataLog = require('./X2DataLog');
exports.Article = require('./Article');
exports.Comment = require('./Comment');
exports.Tag = require('./Tag');
exports.HWClan = require('./herowars/Clan');
exports.HWMember = require('./herowars/Member');