add storeItemId to inventory-items PUT

This commit is contained in:
Emil Nielsen 2023-03-25 14:53:47 +07:00
parent e90c0c9809
commit 63a92b90da
6 changed files with 18 additions and 11 deletions

View File

@ -5,7 +5,7 @@ import Image from "next/image";
const InventoryItem = (props: {
inventoryItem: IInventoryItem;
stakes: IStake[] | null;
upgradeInventoryItem: (itemId: number) => void;
upgradeInventoryItem: (inventoryItemId: number, storeItemId: string) => void;
}) => {
const [currentTierIndex, setCurrentTierIndex] = useState(
props.inventoryItem.currentTierIndex
@ -76,7 +76,10 @@ const InventoryItem = (props: {
) : (
<button
onClick={() =>
props.upgradeInventoryItem(props.inventoryItem.id)
props.upgradeInventoryItem(
props.inventoryItem.id,
props.inventoryItem.storeItem.id
)
}
className="bg-slate-100 text-slate-900 px-4 py-2 rounded-lg font-bold text-center"
>

View File

@ -5,7 +5,7 @@ import InventoryItem from "./InventoryItem";
const InventoryItemView = (props: {
stakes: IStake[] | null;
inventoryItems: IInventoryItem[] | null | undefined;
upgradeInventoryItem: (itemId: number) => void;
upgradeInventoryItem: (inventoryItemId: number, storeItemId: string) => void;
}) => {
return (
<div className="bg-slate-800 text-white p-4 rounded-lg">

View File

@ -2,7 +2,6 @@
import React, { useState } from "react";
import { IStoreItem } from "typings";
import CommonCardLayout from "../Layouts/CommonCardLayout";
import Chart from "./Chart";
import Image from "next/image";
const StoreItem = (props: {

View File

@ -64,7 +64,8 @@ export default function RootLayout({
{walletAddress.length === 0 ? (
<button
onClick={connectWallet}
className="p-2 m-4 bg-slate-800 rounded-lg">
className="p-2 m-4 bg-slate-800 rounded-lg"
>
Connect Wallet
</button>
) : (

View File

@ -225,13 +225,17 @@ export default function Home() {
}
};
const upgradeInventoryItem = async (itemId: number) => {
const upgradeInventoryItem = async (
inventoryItemId: number,
storeItemId: string
) => {
try {
const response = await fetch(`/api/user/${userId}/inventory-items`, {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
itemId: itemId,
inventoryItemId: inventoryItemId,
storeItemId: storeItemId,
}),
});
@ -280,7 +284,7 @@ export default function Home() {
};
if (!userId) return <p>Please login</p>;
//console.log(stakingSources);
return (
<>
{notification && (

View File

@ -47,11 +47,11 @@ export default async function handler(
} else if (req.method === "PUT") {
// Upgrade an existing item
const { userId } = req.query;
const { itemId } = req.body;
const { inventoryItemId, storeItemId } = req.body;
const db = await dbConnection;
const invItem = await db.get(`SELECT id,tier,store_item_id FROM inventory_item
WHERE id = ? AND user_id = ?`, [itemId, userId]);
WHERE id = ? AND user_id = ?`, [inventoryItemId, userId]);
const storeItem = gameConfig.store.find((item) => item.id == invItem.store_item_id);
if (storeItem == undefined) {
@ -70,7 +70,7 @@ export default async function handler(
await db.run("BEGIN");
await db.run(`UPDATE bank_account SET balance = balance - ?
WHERE user_id = ?`, [upgradePrice, userId]);
await db.run(`UPDATE inventory_item SET tier = tier + 1 WHERE id = ?`, [itemId]);
await db.run(`UPDATE inventory_item SET tier = tier + 1 WHERE id = ?`, [inventoryItemId]);
await db.run("INSERT INTO upgrade_event(inventory_item_id) VALUES ( ? )", [invItem.store_item_id]);
await db.run("COMMIT");
} catch (error) {