chore: split confirmGuildInvitation get & post controllers (#1465)
Reviewed-on: OpenWF/SpaceNinjaServer#1465 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									6bb74b026a
								
							
						
					
					
						commit
						2ef59cd570
					
				@ -1,3 +1,4 @@
 | 
				
			|||||||
 | 
					src/routes/api.ts
 | 
				
			||||||
static/webui/libs/
 | 
					static/webui/libs/
 | 
				
			||||||
*.html
 | 
					*.html
 | 
				
			||||||
*.md
 | 
					*.md
 | 
				
			||||||
 | 
				
			|||||||
@ -9,62 +9,8 @@ import { IInventoryChanges } from "@/src/types/purchaseTypes";
 | 
				
			|||||||
import { RequestHandler } from "express";
 | 
					import { RequestHandler } from "express";
 | 
				
			||||||
import { Types } from "mongoose";
 | 
					import { Types } from "mongoose";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const confirmGuildInvitationController: RequestHandler = async (req, res) => {
 | 
					 | 
				
			||||||
    if (req.body) {
 | 
					 | 
				
			||||||
        // POST request: Clan representative accepting invite(s).
 | 
					 | 
				
			||||||
        const accountId = await getAccountIdForRequest(req);
 | 
					 | 
				
			||||||
        const guild = (await Guild.findById(req.query.clanId as string, "Ranks RosterActivity"))!;
 | 
					 | 
				
			||||||
        if (!(await hasGuildPermission(guild, accountId, GuildPermission.Recruiter))) {
 | 
					 | 
				
			||||||
            res.status(400).json("Invalid permission");
 | 
					 | 
				
			||||||
            return;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const payload = getJSONfromString<{ userId: string }>(String(req.body));
 | 
					 | 
				
			||||||
        const filter: { accountId?: string; status: number } = { status: 1 };
 | 
					 | 
				
			||||||
        if (payload.userId != "all") {
 | 
					 | 
				
			||||||
            filter.accountId = payload.userId;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const guildMembers = await GuildMember.find(filter);
 | 
					 | 
				
			||||||
        const newMembers: string[] = [];
 | 
					 | 
				
			||||||
        for (const guildMember of guildMembers) {
 | 
					 | 
				
			||||||
            guildMember.status = 0;
 | 
					 | 
				
			||||||
            guildMember.RequestMsg = undefined;
 | 
					 | 
				
			||||||
            guildMember.RequestExpiry = undefined;
 | 
					 | 
				
			||||||
            await guildMember.save();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Remove other pending applications for this account
 | 
					 | 
				
			||||||
            await GuildMember.deleteMany({ accountId: guildMember.accountId, status: 1 });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Update inventory of new member
 | 
					 | 
				
			||||||
            const inventory = await getInventory(guildMember.accountId.toString(), "GuildId Recipes");
 | 
					 | 
				
			||||||
            inventory.GuildId = new Types.ObjectId(req.query.clanId as string);
 | 
					 | 
				
			||||||
            addRecipes(inventory, [
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    ItemType: "/Lotus/Types/Keys/DojoKeyBlueprint",
 | 
					 | 
				
			||||||
                    ItemCount: 1
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            ]);
 | 
					 | 
				
			||||||
            await inventory.save();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            // Add join to clan log
 | 
					 | 
				
			||||||
            const account = (await Account.findOne({ _id: guildMember.accountId }))!;
 | 
					 | 
				
			||||||
            guild.RosterActivity ??= [];
 | 
					 | 
				
			||||||
            guild.RosterActivity.push({
 | 
					 | 
				
			||||||
                dateTime: new Date(),
 | 
					 | 
				
			||||||
                entryType: 6,
 | 
					 | 
				
			||||||
                details: getSuffixedName(account)
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            newMembers.push(account._id.toString());
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        await guild.save();
 | 
					 | 
				
			||||||
        res.json({
 | 
					 | 
				
			||||||
            NewMembers: newMembers
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
        return;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// GET request: A player accepting an invite they got in their inbox.
 | 
					// GET request: A player accepting an invite they got in their inbox.
 | 
				
			||||||
 | 
					export const confirmGuildInvitationGetController: RequestHandler = async (req, res) => {
 | 
				
			||||||
    const account = await getAccountForRequest(req);
 | 
					    const account = await getAccountForRequest(req);
 | 
				
			||||||
    const invitedGuildMember = await GuildMember.findOne({
 | 
					    const invitedGuildMember = await GuildMember.findOne({
 | 
				
			||||||
        accountId: account._id,
 | 
					        accountId: account._id,
 | 
				
			||||||
@ -124,3 +70,55 @@ export const confirmGuildInvitationController: RequestHandler = async (req, res)
 | 
				
			|||||||
        res.end();
 | 
					        res.end();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// POST request: Clan representative accepting invite(s).
 | 
				
			||||||
 | 
					export const confirmGuildInvitationPostController: RequestHandler = async (req, res) => {
 | 
				
			||||||
 | 
					    const accountId = await getAccountIdForRequest(req);
 | 
				
			||||||
 | 
					    const guild = (await Guild.findById(req.query.clanId as string, "Ranks RosterActivity"))!;
 | 
				
			||||||
 | 
					    if (!(await hasGuildPermission(guild, accountId, GuildPermission.Recruiter))) {
 | 
				
			||||||
 | 
					        res.status(400).json("Invalid permission");
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const payload = getJSONfromString<{ userId: string }>(String(req.body));
 | 
				
			||||||
 | 
					    const filter: { accountId?: string; status: number } = { status: 1 };
 | 
				
			||||||
 | 
					    if (payload.userId != "all") {
 | 
				
			||||||
 | 
					        filter.accountId = payload.userId;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    const guildMembers = await GuildMember.find(filter);
 | 
				
			||||||
 | 
					    const newMembers: string[] = [];
 | 
				
			||||||
 | 
					    for (const guildMember of guildMembers) {
 | 
				
			||||||
 | 
					        guildMember.status = 0;
 | 
				
			||||||
 | 
					        guildMember.RequestMsg = undefined;
 | 
				
			||||||
 | 
					        guildMember.RequestExpiry = undefined;
 | 
				
			||||||
 | 
					        await guildMember.save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Remove other pending applications for this account
 | 
				
			||||||
 | 
					        await GuildMember.deleteMany({ accountId: guildMember.accountId, status: 1 });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Update inventory of new member
 | 
				
			||||||
 | 
					        const inventory = await getInventory(guildMember.accountId.toString(), "GuildId Recipes");
 | 
				
			||||||
 | 
					        inventory.GuildId = new Types.ObjectId(req.query.clanId as string);
 | 
				
			||||||
 | 
					        addRecipes(inventory, [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                ItemType: "/Lotus/Types/Keys/DojoKeyBlueprint",
 | 
				
			||||||
 | 
					                ItemCount: 1
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ]);
 | 
				
			||||||
 | 
					        await inventory.save();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Add join to clan log
 | 
				
			||||||
 | 
					        const account = (await Account.findOne({ _id: guildMember.accountId }))!;
 | 
				
			||||||
 | 
					        guild.RosterActivity ??= [];
 | 
				
			||||||
 | 
					        guild.RosterActivity.push({
 | 
				
			||||||
 | 
					            dateTime: new Date(),
 | 
				
			||||||
 | 
					            entryType: 6,
 | 
				
			||||||
 | 
					            details: getSuffixedName(account)
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        newMembers.push(account._id.toString());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    await guild.save();
 | 
				
			||||||
 | 
					    res.json({
 | 
				
			||||||
 | 
					        NewMembers: newMembers
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ import { clearDialogueHistoryController } from "@/src/controllers/api/clearDialo
 | 
				
			|||||||
import { clearNewEpisodeRewardController } from "@/src/controllers/api/clearNewEpisodeRewardController";
 | 
					import { clearNewEpisodeRewardController } from "@/src/controllers/api/clearNewEpisodeRewardController";
 | 
				
			||||||
import { completeRandomModChallengeController } from "@/src/controllers/api/completeRandomModChallengeController";
 | 
					import { completeRandomModChallengeController } from "@/src/controllers/api/completeRandomModChallengeController";
 | 
				
			||||||
import { confirmAllianceInvitationController } from "@/src/controllers/api/confirmAllianceInvitationController";
 | 
					import { confirmAllianceInvitationController } from "@/src/controllers/api/confirmAllianceInvitationController";
 | 
				
			||||||
import { confirmGuildInvitationController } from "@/src/controllers/api/confirmGuildInvitationController";
 | 
					import { confirmGuildInvitationGetController, confirmGuildInvitationPostController } from "@/src/controllers/api/confirmGuildInvitationController";
 | 
				
			||||||
import { contributeGuildClassController } from "@/src/controllers/api/contributeGuildClassController";
 | 
					import { contributeGuildClassController } from "@/src/controllers/api/contributeGuildClassController";
 | 
				
			||||||
import { contributeToDojoComponentController } from "@/src/controllers/api/contributeToDojoComponentController";
 | 
					import { contributeToDojoComponentController } from "@/src/controllers/api/contributeToDojoComponentController";
 | 
				
			||||||
import { contributeToVaultController } from "@/src/controllers/api/contributeToVaultController";
 | 
					import { contributeToVaultController } from "@/src/controllers/api/contributeToVaultController";
 | 
				
			||||||
@ -146,7 +146,7 @@ apiRouter.get("/changeGuildRank.php", changeGuildRankController);
 | 
				
			|||||||
apiRouter.get("/checkDailyMissionBonus.php", checkDailyMissionBonusController);
 | 
					apiRouter.get("/checkDailyMissionBonus.php", checkDailyMissionBonusController);
 | 
				
			||||||
apiRouter.get("/claimLibraryDailyTaskReward.php", claimLibraryDailyTaskRewardController);
 | 
					apiRouter.get("/claimLibraryDailyTaskReward.php", claimLibraryDailyTaskRewardController);
 | 
				
			||||||
apiRouter.get("/confirmAllianceInvitation.php", confirmAllianceInvitationController);
 | 
					apiRouter.get("/confirmAllianceInvitation.php", confirmAllianceInvitationController);
 | 
				
			||||||
apiRouter.get("/confirmGuildInvitation.php", confirmGuildInvitationController);
 | 
					apiRouter.get("/confirmGuildInvitation.php", confirmGuildInvitationGetController);
 | 
				
			||||||
apiRouter.get("/credits.php", creditsController);
 | 
					apiRouter.get("/credits.php", creditsController);
 | 
				
			||||||
apiRouter.get("/declineAllianceInvite.php", declineAllianceInviteController);
 | 
					apiRouter.get("/declineAllianceInvite.php", declineAllianceInviteController);
 | 
				
			||||||
apiRouter.get("/declineGuildInvite.php", declineGuildInviteController);
 | 
					apiRouter.get("/declineGuildInvite.php", declineGuildInviteController);
 | 
				
			||||||
@ -201,7 +201,7 @@ apiRouter.post("/claimCompletedRecipe.php", claimCompletedRecipeController);
 | 
				
			|||||||
apiRouter.post("/clearDialogueHistory.php", clearDialogueHistoryController);
 | 
					apiRouter.post("/clearDialogueHistory.php", clearDialogueHistoryController);
 | 
				
			||||||
apiRouter.post("/clearNewEpisodeReward.php", clearNewEpisodeRewardController);
 | 
					apiRouter.post("/clearNewEpisodeReward.php", clearNewEpisodeRewardController);
 | 
				
			||||||
apiRouter.post("/completeRandomModChallenge.php", completeRandomModChallengeController);
 | 
					apiRouter.post("/completeRandomModChallenge.php", completeRandomModChallengeController);
 | 
				
			||||||
apiRouter.post("/confirmGuildInvitation.php", confirmGuildInvitationController);
 | 
					apiRouter.post("/confirmGuildInvitation.php", confirmGuildInvitationPostController);
 | 
				
			||||||
apiRouter.post("/contributeGuildClass.php", contributeGuildClassController);
 | 
					apiRouter.post("/contributeGuildClass.php", contributeGuildClassController);
 | 
				
			||||||
apiRouter.post("/contributeToDojoComponent.php", contributeToDojoComponentController);
 | 
					apiRouter.post("/contributeToDojoComponent.php", contributeToDojoComponentController);
 | 
				
			||||||
apiRouter.post("/contributeToVault.php", contributeToVaultController);
 | 
					apiRouter.post("/contributeToVault.php", contributeToVaultController);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user