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 {
|
import {
|
||||||
addGuildMemberMiscItemContribution,
|
addGuildMemberMiscItemContribution,
|
||||||
addVaultMiscItems,
|
addVaultMiscItems,
|
||||||
@ -19,12 +19,27 @@ export const contributeToVaultController: RequestHandler = async (req, res) => {
|
|||||||
const accountId = await getAccountIdForRequest(req);
|
const accountId = await getAccountIdForRequest(req);
|
||||||
const inventory = await getInventory(accountId, "GuildId RegularCredits MiscItems ShipDecorations FusionTreasures");
|
const inventory = await getInventory(accountId, "GuildId RegularCredits MiscItems ShipDecorations FusionTreasures");
|
||||||
const guild = await getGuildForRequestEx(req, inventory);
|
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(
|
const guildMember = (await GuildMember.findOne(
|
||||||
{ accountId, guildId: guild._id },
|
{ accountId, guildId: guild._id },
|
||||||
"RegularCreditsContributed MiscItemsContributed ShipDecorationsContributed"
|
"RegularCreditsContributed MiscItemsContributed ShipDecorationsContributed"
|
||||||
))!;
|
))!;
|
||||||
const request = JSON.parse(String(req.body)) as IContributeToVaultRequest;
|
|
||||||
|
|
||||||
if (request.RegularCredits) {
|
if (request.RegularCredits) {
|
||||||
updateCurrency(inventory, request.RegularCredits, false);
|
updateCurrency(inventory, request.RegularCredits, false);
|
||||||
|
|
||||||
@ -69,4 +84,6 @@ interface IContributeToVaultRequest {
|
|||||||
MiscItems: IMiscItem[];
|
MiscItems: IMiscItem[];
|
||||||
ShipDecorations: ITypeCount[];
|
ShipDecorations: ITypeCount[];
|
||||||
FusionTreasures: IFusionTreasure[];
|
FusionTreasures: IFusionTreasure[];
|
||||||
|
Alliance?: boolean;
|
||||||
|
FromVault?: boolean;
|
||||||
}
|
}
|
||||||
|
@ -254,7 +254,8 @@ const allianceSchema = new Schema<IAllianceDatabase>({
|
|||||||
Name: String,
|
Name: String,
|
||||||
MOTD: longMOTDSchema,
|
MOTD: longMOTDSchema,
|
||||||
LongMOTD: longMOTDSchema,
|
LongMOTD: longMOTDSchema,
|
||||||
Emblem: Boolean
|
Emblem: Boolean,
|
||||||
|
VaultRegularCredits: Number
|
||||||
});
|
});
|
||||||
|
|
||||||
allianceSchema.index({ Name: 1 }, { unique: true });
|
allianceSchema.index({ Name: 1 }, { unique: true });
|
||||||
|
@ -581,6 +581,9 @@ export const getAllianceClient = async (
|
|||||||
return {
|
return {
|
||||||
_id: toOid(alliance._id),
|
_id: toOid(alliance._id),
|
||||||
Name: alliance.Name,
|
Name: alliance.Name,
|
||||||
Clans: clans
|
Clans: clans,
|
||||||
|
AllianceVault: {
|
||||||
|
DojoRefundRegularCredits: alliance.VaultRegularCredits
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -282,6 +282,7 @@ export interface IAllianceClient {
|
|||||||
CrossPlatformEnabled?: boolean;
|
CrossPlatformEnabled?: boolean;
|
||||||
Clans: IAllianceMemberClient[];
|
Clans: IAllianceMemberClient[];
|
||||||
OriginalPlatform?: number;
|
OriginalPlatform?: number;
|
||||||
|
AllianceVault?: IGuildVault;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IAllianceDatabase {
|
export interface IAllianceDatabase {
|
||||||
@ -290,6 +291,7 @@ export interface IAllianceDatabase {
|
|||||||
MOTD?: ILongMOTD;
|
MOTD?: ILongMOTD;
|
||||||
LongMOTD?: ILongMOTD;
|
LongMOTD?: ILongMOTD;
|
||||||
Emblem?: boolean;
|
Emblem?: boolean;
|
||||||
|
VaultRegularCredits?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IAllianceMemberClient {
|
export interface IAllianceMemberClient {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user