construct Members in getGuild response from database
This commit is contained in:
parent
e8bd9e4ec4
commit
991068aad7
@ -5,6 +5,9 @@ import { getAccountIdForRequest } from "@/src/services/loginService";
|
|||||||
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
|
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
|
||||||
import { getGuildVault } from "@/src/services/guildService";
|
import { getGuildVault } from "@/src/services/guildService";
|
||||||
import { logger } from "@/src/utils/logger";
|
import { logger } from "@/src/utils/logger";
|
||||||
|
import { IGuildMemberClient } from "@/src/types/guildTypes";
|
||||||
|
import { Account } from "@/src/models/loginModel";
|
||||||
|
import { config } from "@/src/services/configService";
|
||||||
|
|
||||||
const getGuildController: RequestHandler = async (req, res) => {
|
const getGuildController: RequestHandler = async (req, res) => {
|
||||||
const accountId = await getAccountIdForRequest(req);
|
const accountId = await getAccountIdForRequest(req);
|
||||||
@ -25,20 +28,48 @@ const getGuildController: RequestHandler = async (req, res) => {
|
|||||||
}
|
}
|
||||||
const guildMembers = await GuildMember.find({ guildId: inventory.GuildId });
|
const guildMembers = await GuildMember.find({ guildId: inventory.GuildId });
|
||||||
|
|
||||||
// Handle clans created prior to creation of the GuildMember model.
|
const members: IGuildMemberClient[] = [];
|
||||||
let missingEntry = true;
|
let missingEntry = true;
|
||||||
for (const guildMember of guildMembers) {
|
for (const guildMember of guildMembers) {
|
||||||
|
const member: IGuildMemberClient = {
|
||||||
|
_id: toOid(guildMember.accountId),
|
||||||
|
Rank: guildMember.rank,
|
||||||
|
Status: guildMember.status
|
||||||
|
};
|
||||||
if (guildMember.accountId.equals(accountId)) {
|
if (guildMember.accountId.equals(accountId)) {
|
||||||
missingEntry = false;
|
missingEntry = false;
|
||||||
|
} else {
|
||||||
|
member.DisplayName = (await Account.findOne(
|
||||||
|
{
|
||||||
|
_id: guildMember.accountId
|
||||||
|
},
|
||||||
|
"DisplayName"
|
||||||
|
))!.DisplayName;
|
||||||
|
const inventory = (await Inventory.findOne(
|
||||||
|
{
|
||||||
|
accountOwnerId: guildMember.accountId
|
||||||
|
},
|
||||||
|
"PlayerLevel ActiveAvatarImageType"
|
||||||
|
))!;
|
||||||
|
member.PlayerLevel =
|
||||||
|
config.spoofMasteryRank == -1 ? inventory.PlayerLevel : config.spoofMasteryRank;
|
||||||
|
member.ActiveAvatarImageType = inventory.ActiveAvatarImageType;
|
||||||
}
|
}
|
||||||
|
members.push(member);
|
||||||
}
|
}
|
||||||
if (missingEntry) {
|
if (missingEntry) {
|
||||||
|
// Handle clans created prior to creation of the GuildMember model.
|
||||||
await GuildMember.insertOne({
|
await GuildMember.insertOne({
|
||||||
accountId: accountId,
|
accountId: accountId,
|
||||||
guildId: inventory.GuildId,
|
guildId: inventory.GuildId,
|
||||||
status: 0,
|
status: 0,
|
||||||
rank: 0
|
rank: 0
|
||||||
});
|
});
|
||||||
|
members.push({
|
||||||
|
_id: { $oid: accountId },
|
||||||
|
Status: 0,
|
||||||
|
Rank: 0
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
res.json({
|
res.json({
|
||||||
@ -46,13 +77,7 @@ const getGuildController: RequestHandler = async (req, res) => {
|
|||||||
Name: guild.Name,
|
Name: guild.Name,
|
||||||
MOTD: guild.MOTD,
|
MOTD: guild.MOTD,
|
||||||
LongMOTD: guild.LongMOTD,
|
LongMOTD: guild.LongMOTD,
|
||||||
Members: [
|
Members: members,
|
||||||
{
|
|
||||||
_id: { $oid: req.query.accountId },
|
|
||||||
Rank: 0,
|
|
||||||
Status: 0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
Ranks: [
|
Ranks: [
|
||||||
{
|
{
|
||||||
Name: "/Lotus/Language/Game/Rank_Creator",
|
Name: "/Lotus/Language/Game/Rank_Creator",
|
||||||
|
@ -42,6 +42,15 @@ export interface IGuildMemberDatabase {
|
|||||||
rank: number;
|
rank: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface IGuildMemberClient {
|
||||||
|
_id: IOid;
|
||||||
|
Status: number;
|
||||||
|
Rank: number;
|
||||||
|
DisplayName?: string;
|
||||||
|
ActiveAvatarImageType?: string;
|
||||||
|
PlayerLevel?: number;
|
||||||
|
}
|
||||||
|
|
||||||
export interface IGuildVault {
|
export interface IGuildVault {
|
||||||
DojoRefundRegularCredits?: number;
|
DojoRefundRegularCredits?: number;
|
||||||
DojoRefundMiscItems?: IMiscItem[];
|
DojoRefundMiscItems?: IMiscItem[];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user