diff --git a/prisma/migrations/20230306141823_add_card_to_transfer/migration.sql b/prisma/migrations/20230306141823_add_card_to_transfer/migration.sql new file mode 100644 index 0000000000000000000000000000000000000000..e3f3acc6e2f39843c27a2fc39511e38e5d86874d --- /dev/null +++ b/prisma/migrations/20230306141823_add_card_to_transfer/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "MoneyTransfer" ADD COLUMN "card" TEXT NOT NULL DEFAULT ''; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index 576094a20590fe4d23b5dd8bb150fcf8ac8fc1b0..a24631125bdc3962d6715ca4a4df70200dad27d5 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -97,4 +97,5 @@ model MoneyTransfer { fromId Int to User @relation("to", fields: [toId], references: [id]) toId Int + card String @default("") } diff --git a/src/routes/api/[slug]/+server.js b/src/routes/api/[slug]/+server.js index cfdcbe60434ac13fa687c10580ea2c3c0a47ced9..dffff53d01b0cb43b5d33af4ac1b159093980400 100644 --- a/src/routes/api/[slug]/+server.js +++ b/src/routes/api/[slug]/+server.js @@ -44,7 +44,7 @@ export async function POST(event) { if(user.balance < data.amount) return new Response(JSON.stringify({message: "Not enough balance"}), {headers: {'content-type': 'application/json', 'status': 400}}); const target = await getUserById(data.target); if(!target) return new Response(JSON.stringify({message: "Target not found"}), {headers: {'content-type': 'application/json', 'status': 404}}); - const { from } = await transferMoney(user.id, target.id, data.amount); + const { from } = await transferMoney(user.id, data.card, target.id, data.amount); // don't return the to-user, because it contains the target's information return new Response(JSON.stringify(from), {headers: {'content-type': 'application/json', 'status': 200}}); }catch(e){ diff --git a/src/routes/api/transactions.js b/src/routes/api/transactions.js index ee1d042977a2e292cd07d12679c2cfe3acac2309..cf729b25fe9b9c75a7bb874ca4ee557581930d9e 100644 --- a/src/routes/api/transactions.js +++ b/src/routes/api/transactions.js @@ -29,7 +29,7 @@ export async function buyArticles(userId, card, items, noBalance=false) { return { user, itemTransactions }; } -export async function transferMoney(fromId, toId, amount){ +export async function transferMoney(fromId, card, toId, amount){ const [to, from] = await db.$transaction([ db.user.update({ where: { id: toId }, @@ -40,6 +40,7 @@ export async function transferMoney(fromId, toId, amount){ moneyTransfersReceived: { create: { amount, + card, from: { connect: { id: fromId } } } }