feat: selling of warframes & weapons (#157)
This commit is contained in:
parent
9bded04dfd
commit
1dd9f4ca4f
49
src/controllers/api/sellController.ts
Normal file
49
src/controllers/api/sellController.ts
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import { RequestHandler } from "express";
|
||||||
|
import { ISellRequest } from "@/src/types/sellTypes";
|
||||||
|
import { getInventory } from "@/src/services/inventoryService";
|
||||||
|
|
||||||
|
export const sellController: RequestHandler = async (req, res) => {
|
||||||
|
const payload: ISellRequest = JSON.parse(req.body.toString());
|
||||||
|
const inventory = await getInventory(req.query.accountId as string);
|
||||||
|
|
||||||
|
// Give currency
|
||||||
|
if (payload.SellCurrency == "SC_RegularCredits") {
|
||||||
|
inventory.RegularCredits += payload.SellPrice;
|
||||||
|
} else if (payload.SellCurrency == "SC_FusionPoints") {
|
||||||
|
inventory.FusionPoints += payload.SellPrice;
|
||||||
|
} else {
|
||||||
|
throw new Error("Unknown SellCurrency: " + payload.SellCurrency);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Remove item(s)
|
||||||
|
if (payload.Items.Suits) {
|
||||||
|
payload.Items.Suits.forEach(sellItem => {
|
||||||
|
inventory.Suits.pull({ _id: sellItem.String });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (payload.Items.LongGuns) {
|
||||||
|
payload.Items.LongGuns.forEach(sellItem => {
|
||||||
|
inventory.LongGuns.pull({ _id: sellItem.String });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (payload.Items.Pistols) {
|
||||||
|
payload.Items.Pistols.forEach(sellItem => {
|
||||||
|
inventory.Pistols.pull({ _id: sellItem.String });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (payload.Items.Melee) {
|
||||||
|
payload.Items.Melee.forEach(sellItem => {
|
||||||
|
inventory.Melee.pull({ _id: sellItem.String });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (payload.Items.Recipes) {
|
||||||
|
// TODO
|
||||||
|
// Note: sellItem.String is a uniqueName in this case
|
||||||
|
}
|
||||||
|
if (payload.Items.Upgrades) {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
|
||||||
|
await inventory.save();
|
||||||
|
res.json({});
|
||||||
|
};
|
@ -44,6 +44,7 @@ import { updateThemeController } from "../controllers/api/updateThemeController"
|
|||||||
import { getGuildController } from "@/src/controllers/api/getGuildController";
|
import { getGuildController } from "@/src/controllers/api/getGuildController";
|
||||||
import { addFriendImageController } from "@/src/controllers/api/addFriendImageController";
|
import { addFriendImageController } from "@/src/controllers/api/addFriendImageController";
|
||||||
import { createGuildController } from "@/src/controllers/api/createGuildController";
|
import { createGuildController } from "@/src/controllers/api/createGuildController";
|
||||||
|
import { sellController } from "@/src/controllers/api/sellController";
|
||||||
|
|
||||||
const apiRouter = express.Router();
|
const apiRouter = express.Router();
|
||||||
|
|
||||||
@ -98,5 +99,6 @@ apiRouter.post("/trainingResult.php", trainingResultController);
|
|||||||
apiRouter.post("/updateTheme.php", updateThemeController);
|
apiRouter.post("/updateTheme.php", updateThemeController);
|
||||||
apiRouter.post("/addFriendImage.php", addFriendImageController);
|
apiRouter.post("/addFriendImage.php", addFriendImageController);
|
||||||
apiRouter.post("/createGuild.php", createGuildController);
|
apiRouter.post("/createGuild.php", createGuildController);
|
||||||
|
apiRouter.post("/sell.php", sellController);
|
||||||
|
|
||||||
export { apiRouter };
|
export { apiRouter };
|
||||||
|
23
src/types/sellTypes.ts
Normal file
23
src/types/sellTypes.ts
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
export interface ISellRequest {
|
||||||
|
Items: {
|
||||||
|
Suits?: ISellItem[];
|
||||||
|
LongGuns?: ISellItem[];
|
||||||
|
Pistols?: ISellItem[];
|
||||||
|
Melee?: ISellItem[];
|
||||||
|
Recipes?: ISellItem[];
|
||||||
|
Upgrades?: ISellItem[];
|
||||||
|
};
|
||||||
|
SellPrice: number;
|
||||||
|
SellCurrency:
|
||||||
|
| "SC_RegularCredits"
|
||||||
|
| "SC_PrimeBucks"
|
||||||
|
| "SC_FusionPoints"
|
||||||
|
| "SC_CrewShipFusionPoints"
|
||||||
|
| "SC_Resources";
|
||||||
|
buildLabel: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ISellItem {
|
||||||
|
String: string; // oid or uniqueName
|
||||||
|
Count: number;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user