File tree 1 file changed +37
-5
lines changed
1 file changed +37
-5
lines changed Original file line number Diff line number Diff line change @@ -869,6 +869,38 @@ async function upsertWallet (
869
869
870
870
const txs = [ ]
871
871
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
+
872
904
if ( id ) {
873
905
const oldVaultEntries = await models . vaultEntry . findMany ( { where : { userId : me . id , walletId : Number ( id ) } } )
874
906
@@ -890,9 +922,10 @@ async function upsertWallet (
890
922
? {
891
923
[ wallet . field ] : {
892
924
upsert : {
893
- create : recvConfig ,
894
- update : recvConfig
895
- }
925
+ create : { ...recvConfig , ...vaultData . create } ,
926
+ update : { ...recvConfig , ...vaultData . upsert }
927
+ } ,
928
+ update : vaultData . delete
896
929
}
897
930
}
898
931
: { } ) ,
@@ -912,7 +945,6 @@ async function upsertWallet (
912
945
}
913
946
}
914
947
: { } )
915
-
916
948
} ,
917
949
include : {
918
950
vaultEntries : true
@@ -931,7 +963,7 @@ async function upsertWallet (
931
963
userId : me . id ,
932
964
type : wallet . type ,
933
965
// 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 } } } : { } ) ,
935
967
...( vaultEntries
936
968
? {
937
969
vaultEntries : {
You can’t perform that action at this time.
0 commit comments