Skip to content

Commit e234dda

Browse files
committed
Save vault data into new schema
1 parent 5db5739 commit e234dda

File tree

1 file changed

+37
-5
lines changed

1 file changed

+37
-5
lines changed

api/resolvers/wallet.js

+37-5
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,38 @@ async function upsertWallet (
869869

870870
const txs = []
871871

872+
const vaultData = vaultEntries.reduce((acc, { key, iv, value }) => {
873+
// delete key from update object since we don't want to delete it
874+
delete acc.delete[key]
875+
return {
876+
create: {
877+
...acc.create,
878+
[key]: {
879+
create: { iv, value }
880+
}
881+
},
882+
upsert: {
883+
...acc.upsert,
884+
[key]: {
885+
upsert: {
886+
create: { iv, value },
887+
update: { iv, value }
888+
}
889+
}
890+
},
891+
delete: acc.delete
892+
}
893+
}, {
894+
create: {},
895+
upsert: {},
896+
delete: walletDef.fields
897+
.filter(f => f.clientOnly)
898+
.reduce((acc, f) => ({
899+
...acc,
900+
[f.name]: { delete: true }
901+
}), {})
902+
})
903+
872904
if (id) {
873905
const oldVaultEntries = await models.vaultEntry.findMany({ where: { userId: me.id, walletId: Number(id) } })
874906

@@ -890,9 +922,10 @@ async function upsertWallet (
890922
? {
891923
[wallet.field]: {
892924
upsert: {
893-
create: recvConfig,
894-
update: recvConfig
895-
}
925+
create: { ...recvConfig, ...vaultData.create },
926+
update: { ...recvConfig, ...vaultData.upsert }
927+
},
928+
update: vaultData.delete
896929
}
897930
}
898931
: {}),
@@ -912,7 +945,6 @@ async function upsertWallet (
912945
}
913946
}
914947
: {})
915-
916948
},
917949
include: {
918950
vaultEntries: true
@@ -931,7 +963,7 @@ async function upsertWallet (
931963
userId: me.id,
932964
type: wallet.type,
933965
// client only wallets have no receive config and thus don't have their own table
934-
...(Object.keys(recvConfig).length > 0 ? { [wallet.field]: { create: recvConfig } } : {}),
966+
...(Object.keys(recvConfig).length > 0 ? { [wallet.field]: { create: { ...recvConfig, ...vaultData.create } } } : {}),
935967
...(vaultEntries
936968
? {
937969
vaultEntries: {

0 commit comments

Comments
 (0)