feat: clan members #1143
@ -5,6 +5,9 @@ import { getAccountIdForRequest } from "@/src/services/loginService";
 | 
			
		||||
import { toMongoDate, toOid } from "@/src/helpers/inventoryHelpers";
 | 
			
		||||
import { getGuildVault } from "@/src/services/guildService";
 | 
			
		||||
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 accountId = await getAccountIdForRequest(req);
 | 
			
		||||
@ -25,20 +28,48 @@ const getGuildController: RequestHandler = async (req, res) => {
 | 
			
		||||
            }
 | 
			
		||||
            const guildMembers = await GuildMember.find({ guildId: inventory.GuildId });
 | 
			
		||||
 | 
			
		||||
            // Handle clans created prior to creation of the GuildMember model.
 | 
			
		||||
            const members: IGuildMemberClient[] = [];
 | 
			
		||||
            let missingEntry = true;
 | 
			
		||||
            for (const guildMember of guildMembers) {
 | 
			
		||||
                const member: IGuildMemberClient = {
 | 
			
		||||
                    _id: toOid(guildMember.accountId),
 | 
			
		||||
                    Rank: guildMember.rank,
 | 
			
		||||
                    Status: guildMember.status
 | 
			
		||||
                };
 | 
			
		||||
                if (guildMember.accountId.equals(accountId)) {
 | 
			
		||||
                    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) {
 | 
			
		||||
                // Handle clans created prior to creation of the GuildMember model.
 | 
			
		||||
                await GuildMember.insertOne({
 | 
			
		||||
                    accountId: accountId,
 | 
			
		||||
                    guildId: inventory.GuildId,
 | 
			
		||||
                    status: 0,
 | 
			
		||||
                    rank: 0
 | 
			
		||||
                });
 | 
			
		||||
                members.push({
 | 
			
		||||
                    _id: { $oid: accountId },
 | 
			
		||||
                    Status: 0,
 | 
			
		||||
                    Rank: 0
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            res.json({
 | 
			
		||||
@ -46,13 +77,7 @@ const getGuildController: RequestHandler = async (req, res) => {
 | 
			
		||||
                Name: guild.Name,
 | 
			
		||||
                MOTD: guild.MOTD,
 | 
			
		||||
                LongMOTD: guild.LongMOTD,
 | 
			
		||||
                Members: [
 | 
			
		||||
                    {
 | 
			
		||||
                        _id: { $oid: req.query.accountId },
 | 
			
		||||
                        Rank: 0,
 | 
			
		||||
                        Status: 0
 | 
			
		||||
                    }
 | 
			
		||||
                ],
 | 
			
		||||
                Members: members,
 | 
			
		||||
                Ranks: [
 | 
			
		||||
                    {
 | 
			
		||||
                        Name: "/Lotus/Language/Game/Rank_Creator",
 | 
			
		||||
 | 
			
		||||
@ -42,6 +42,15 @@ export interface IGuildMemberDatabase {
 | 
			
		||||
    rank: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IGuildMemberClient {
 | 
			
		||||
    _id: IOid;
 | 
			
		||||
    Status: number;
 | 
			
		||||
    Rank: number;
 | 
			
		||||
    DisplayName?: string;
 | 
			
		||||
    ActiveAvatarImageType?: string;
 | 
			
		||||
    PlayerLevel?: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IGuildVault {
 | 
			
		||||
    DojoRefundRegularCredits?: number;
 | 
			
		||||
    DojoRefundMiscItems?: IMiscItem[];
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user