feat: donate credits to alliance vault
All checks were successful
Build / build (18) (push) Successful in 41s
Build / build (20) (push) Successful in 1m16s
Build / build (18) (pull_request) Successful in 40s
Build / build (22) (push) Successful in 1m9s
Build / build (20) (pull_request) Successful in 1m15s
Build / build (22) (pull_request) Successful in 1m11s
All checks were successful
Build / build (18) (push) Successful in 41s
Build / build (20) (push) Successful in 1m16s
Build / build (18) (pull_request) Successful in 40s
Build / build (22) (push) Successful in 1m9s
Build / build (20) (pull_request) Successful in 1m15s
Build / build (22) (pull_request) Successful in 1m11s
This commit is contained in:
parent
74d9428a66
commit
8f7a757a0f
@ -1,4 +1,4 @@
|
||||
import { GuildMember } from "@/src/models/guildModel";
|
||||
import { Alliance, GuildMember } from "@/src/models/guildModel";
|
||||
import {
|
||||
addGuildMemberMiscItemContribution,
|
||||
addVaultMiscItems,
|
||||
@ -19,12 +19,27 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
|
||||
const accountId = await getAccountIdForRequest(req);
|
||||
const inventory = await getInventory(accountId, "GuildId RegularCredits MiscItems ShipDecorations FusionTreasures");
|
||||
const guild = await getGuildForRequestEx(req, inventory);
|
||||
const request = JSON.parse(String(req.body)) as IContributeToVaultRequest;
|
||||
|
||||
if (request.Alliance) {
|
||||
const alliance = (await Alliance.findById(guild.AllianceId!))!;
|
||||
alliance.VaultRegularCredits ??= 0;
|
||||
alliance.VaultRegularCredits += request.RegularCredits;
|
||||
if (request.FromVault) {
|
||||
guild.VaultRegularCredits! -= request.RegularCredits;
|
||||
await Promise.all([guild.save(), alliance.save()]);
|
||||
} else {
|
||||
updateCurrency(inventory, request.RegularCredits, false);
|
||||
await Promise.all([inventory.save(), alliance.save()]);
|
||||
}
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
|
||||
const guildMember = (await GuildMember.findOne(
|
||||
{ accountId, guildId: guild._id },
|
||||
"RegularCreditsContributed MiscItemsContributed ShipDecorationsContributed"
|
||||
))!;
|
||||
const request = JSON.parse(String(req.body)) as IContributeToVaultRequest;
|
||||
|
||||
if (request.RegularCredits) {
|
||||
updateCurrency(inventory, request.RegularCredits, false);
|
||||
|
||||
@ -69,4 +84,6 @@ interface IContributeToVaultRequest {
|
||||
MiscItems: IMiscItem[];
|
||||
ShipDecorations: ITypeCount[];
|
||||
FusionTreasures: IFusionTreasure[];
|
||||
Alliance?: boolean;
|
||||
FromVault?: boolean;
|
||||
}
|
||||
|
@ -254,7 +254,8 @@ const allianceSchema = new Schema<IAllianceDatabase>({
|
||||
Name: String,
|
||||
MOTD: longMOTDSchema,
|
||||
LongMOTD: longMOTDSchema,
|
||||
Emblem: Boolean
|
||||
Emblem: Boolean,
|
||||
VaultRegularCredits: Number
|
||||
});
|
||||
|
||||
allianceSchema.index({ Name: 1 }, { unique: true });
|
||||
|
@ -581,6 +581,9 @@ export const getAllianceClient = async (
|
||||
return {
|
||||
_id: toOid(alliance._id),
|
||||
Name: alliance.Name,
|
||||
Clans: clans
|
||||
Clans: clans,
|
||||
AllianceVault: {
|
||||
DojoRefundRegularCredits: alliance.VaultRegularCredits
|
||||
}
|
||||
};
|
||||
};
|
||||
|
@ -282,6 +282,7 @@ export interface IAllianceClient {
|
||||
CrossPlatformEnabled?: boolean;
|
||||
Clans: IAllianceMemberClient[];
|
||||
OriginalPlatform?: number;
|
||||
AllianceVault?: IGuildVault;
|
||||
}
|
||||
|
||||
export interface IAllianceDatabase {
|
||||
@ -290,6 +291,7 @@ export interface IAllianceDatabase {
|
||||
MOTD?: ILongMOTD;
|
||||
LongMOTD?: ILongMOTD;
|
||||
Emblem?: boolean;
|
||||
VaultRegularCredits?: number;
|
||||
}
|
||||
|
||||
export interface IAllianceMemberClient {
|
||||
|
Loading…
x
Reference in New Issue
Block a user