From ac14b3eb94466969b26377f87555ca735bb97a62 Mon Sep 17 00:00:00 2001 From: James Grugett Date: Mon, 25 Apr 2022 22:47:54 -0400 Subject: [PATCH] Handle txn to non-user by burning it --- functions/src/transact.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/functions/src/transact.ts b/functions/src/transact.ts index 55b77999..345c8b56 100644 --- a/functions/src/transact.ts +++ b/functions/src/transact.ts @@ -46,13 +46,6 @@ export const transact = functions } const fromUser = fromSnap.data() as User - const toDoc = firestore.doc(`users/${toId}`) - const toSnap = await transaction.get(toDoc) - if (!toSnap.exists) { - return { status: 'error', message: 'User not found' } - } - const toUser = toSnap.data() as User - if (fromUser.balance < amount) { return { status: 'error', @@ -60,6 +53,16 @@ export const transact = functions } } + if (toType === 'user') { + const toDoc = firestore.doc(`users/${toId}`) + const toSnap = await transaction.get(toDoc) + if (!toSnap.exists) { + return { status: 'error', message: 'User not found' } + } + const toUser = toSnap.data() as User + transaction.update(toDoc, { balance: toUser.balance + amount }) + } + const newTxnDoc = firestore.collection(`txns/`).doc() const txn: Txn = removeUndefinedProps({ @@ -79,7 +82,6 @@ export const transact = functions transaction.create(newTxnDoc, txn) transaction.update(fromDoc, { balance: fromUser.balance - amount }) - transaction.update(toDoc, { balance: toUser.balance + amount }) return { status: 'success', txnId: newTxnDoc.id } })