feat: clan members #1143
@ -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