forked from OpenWF/SpaceNinjaServer
feat: donate credits to alliance vault (#1436)
Reviewed-on: OpenWF/SpaceNinjaServer#1436 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
2173bdb8b8
commit
6dc54ed893
@ -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 {
|
||||
@ -318,5 +320,4 @@ export interface IAllianceMemberDatabase {
|
||||
// TODO: GET /api/divvyAllianceVault.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=663e9be9f741eeb5782f9df0&allianceId=000000000000000000000069&credits=0
|
||||
// TODO: GET /api/removeFromAlliance.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=663e9be9f741eeb5782f9df0
|
||||
// TODO: GET /api/setAllianceGuildPermissions.php?accountId=6633b81e9dba0b714f28ff02&nonce=5702391171614479&ct=MSI&guildId=000000000000000000000042&perms=2
|
||||
// TODO: Handle alliance in contributeToVault
|
||||
// TODO: Handle alliance in setGuildMotd
|
||||
|
Loading…
x
Reference in New Issue
Block a user