57 lines
1.7 KiB
TypeScript
57 lines
1.7 KiB
TypeScript
import { postgresConnection } from "db";
|
|
import type { NextApiRequest, NextApiResponse } from "next";
|
|
import {
|
|
calculateRemainingTime,
|
|
} from "../../../../../utils/helpers";
|
|
|
|
import { gameConfig } from "@/utils/gameLogic";
|
|
|
|
export default async function handler(
|
|
req: NextApiRequest,
|
|
res: NextApiResponse
|
|
) {
|
|
try {
|
|
if (req.method === "POST") {
|
|
const { userId } = req.query;
|
|
const {
|
|
inventoryItemId,
|
|
wellId
|
|
} = req.body;
|
|
|
|
const db = postgresConnection;
|
|
try {
|
|
|
|
const result =
|
|
await db.query("SELECT * FROM stake($1, $2, $3) AS stake",
|
|
[ userId,
|
|
wellId,
|
|
inventoryItemId]);
|
|
|
|
return res.status(200).json({stakingEventId: result.rows[0].stake});
|
|
|
|
// if (invItem.stakeId != undefined) {
|
|
// const timeRemaining = calculateRemainingTime(invItem.stakeTime, invItem.duration_in_mins);
|
|
// if (timeRemaining > 0) {
|
|
// return res.status(400).json({error: `Item is still in use ${timeRemaining}`});
|
|
// }
|
|
// }
|
|
|
|
// const boost = invItem.tier > 0 ? item.upgrades[invItem.tier - 1].claimBoost : 0;
|
|
// const totalClaim = item.claimAmount + boost;
|
|
|
|
// await db.run(`INSERT INTO staking_event(user_id, well_id, inventory_item_id, duration_in_mins, stake_amount)
|
|
// VALUES (?,?,?,?,?)`,
|
|
// [userId, well.id, invItem.id, item.completionTimeInMins, totalClaim]);
|
|
} catch (error) {
|
|
return res.status(400).json({ error: error.message});
|
|
}
|
|
}
|
|
} catch (error) {
|
|
if (error instanceof Error){
|
|
res.status(500).json(error.message);
|
|
} else {
|
|
res.status(500).json({ error: "Unknown Error"});
|
|
}
|
|
}
|
|
}
|