1
1
use crate :: Config ;
2
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
3
+ use bcr_ebill_persistence:: get_surreal_db;
2
4
use bcr_ebill_persistence:: {
3
5
BackupStoreApi , ContactStoreApi , NostrEventOffsetStoreApi , NotificationStoreApi ,
4
6
SurrealBackupStore , SurrealBillChainStore , SurrealBillStore , SurrealCompanyChainStore ,
@@ -8,10 +10,9 @@ use bcr_ebill_persistence::{
8
10
company:: { CompanyChainStoreApi , CompanyStoreApi } ,
9
11
db:: {
10
12
nostr_contact_store:: SurrealNostrContactStore ,
11
- nostr_send_queue:: SurrealNostrEventQueueStore ,
13
+ nostr_send_queue:: SurrealNostrEventQueueStore , surreal :: SurrealWrapper ,
12
14
} ,
13
15
file_upload:: FileUploadStoreApi ,
14
- get_surreal_db,
15
16
identity:: { IdentityChainStoreApi , IdentityStoreApi } ,
16
17
nostr:: { NostrContactStoreApi , NostrQueuedMessageStoreApi } ,
17
18
} ;
@@ -49,13 +50,27 @@ pub struct DbContext {
49
50
}
50
51
51
52
/// Creates a new instance of the DbContext with the given SurrealDB configuration.
52
- pub async fn get_db_context ( conf : & Config ) -> bcr_ebill_persistence:: Result < DbContext > {
53
+ pub async fn get_db_context (
54
+ #[ allow( unused) ] conf : & Config ,
55
+ ) -> bcr_ebill_persistence:: Result < DbContext > {
56
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
53
57
let db = get_surreal_db ( & conf. db_config ) . await ?;
58
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
59
+ let surreal_wrapper = SurrealWrapper {
60
+ db : db. clone ( ) ,
61
+ files : false ,
62
+ } ;
54
63
55
- let company_store = Arc :: new ( SurrealCompanyStore :: new ( db. clone ( ) ) ) ;
56
64
#[ cfg( target_arch = "wasm32" ) ]
57
- let file_upload_store =
58
- Arc :: new ( bcr_ebill_persistence:: db:: file_upload:: FileUploadStore :: new ( db. clone ( ) ) ) ;
65
+ let surreal_wrapper = SurrealWrapper { files : false } ;
66
+
67
+ let company_store = Arc :: new ( SurrealCompanyStore :: new ( surreal_wrapper. clone ( ) ) ) ;
68
+ #[ cfg( target_arch = "wasm32" ) ]
69
+ let file_upload_store = Arc :: new (
70
+ bcr_ebill_persistence:: db:: file_upload:: FileUploadStore :: new ( SurrealWrapper {
71
+ files : true ,
72
+ } ) ,
73
+ ) ;
59
74
60
75
#[ cfg( not( target_arch = "wasm32" ) ) ]
61
76
let file_upload_store = Arc :: new (
@@ -71,20 +86,26 @@ pub async fn get_db_context(conf: &Config) -> bcr_ebill_persistence::Result<DbCo
71
86
error ! ( "Error cleaning up temp uploads: {e}" ) ;
72
87
}
73
88
74
- let contact_store = Arc :: new ( SurrealContactStore :: new ( db. clone ( ) ) ) ;
89
+ let contact_store = Arc :: new ( SurrealContactStore :: new ( surreal_wrapper. clone ( ) ) ) ;
90
+
91
+ let bill_store = Arc :: new ( SurrealBillStore :: new ( surreal_wrapper. clone ( ) ) ) ;
92
+ let bill_blockchain_store = Arc :: new ( SurrealBillChainStore :: new ( surreal_wrapper. clone ( ) ) ) ;
75
93
76
- let bill_store = Arc :: new ( SurrealBillStore :: new ( db. clone ( ) ) ) ;
77
- let bill_blockchain_store = Arc :: new ( SurrealBillChainStore :: new ( db. clone ( ) ) ) ;
94
+ let identity_store = Arc :: new ( SurrealIdentityStore :: new ( surreal_wrapper. clone ( ) ) ) ;
95
+ let identity_chain_store = Arc :: new ( SurrealIdentityChainStore :: new ( surreal_wrapper. clone ( ) ) ) ;
96
+ let company_chain_store = Arc :: new ( SurrealCompanyChainStore :: new ( surreal_wrapper. clone ( ) ) ) ;
78
97
79
- let identity_store = Arc :: new ( SurrealIdentityStore :: new ( db . clone ( ) ) ) ;
80
- let identity_chain_store = Arc :: new ( SurrealIdentityChainStore :: new ( db . clone ( ) ) ) ;
81
- let company_chain_store = Arc :: new ( SurrealCompanyChainStore :: new ( db . clone ( ) ) ) ;
98
+ let nostr_event_offset_store =
99
+ Arc :: new ( SurrealNostrEventOffsetStore :: new ( surreal_wrapper . clone ( ) ) ) ;
100
+ let notification_store = Arc :: new ( SurrealNotificationStore :: new ( surreal_wrapper . clone ( ) ) ) ;
82
101
83
- let nostr_event_offset_store = Arc :: new ( SurrealNostrEventOffsetStore :: new ( db. clone ( ) ) ) ;
84
- let notification_store = Arc :: new ( SurrealNotificationStore :: new ( db. clone ( ) ) ) ;
102
+ #[ cfg( target_arch = "wasm32" ) ]
103
+ let backup_store = Arc :: new ( SurrealBackupStore { } ) ;
104
+
105
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
85
106
let backup_store = Arc :: new ( SurrealBackupStore :: new ( db. clone ( ) ) ) ;
86
- let queued_message_store = Arc :: new ( SurrealNostrEventQueueStore :: new ( db . clone ( ) ) ) ;
87
- let nostr_contact_store = Arc :: new ( SurrealNostrContactStore :: new ( db . clone ( ) ) ) ;
107
+ let queued_message_store = Arc :: new ( SurrealNostrEventQueueStore :: new ( surreal_wrapper . clone ( ) ) ) ;
108
+ let nostr_contact_store = Arc :: new ( SurrealNostrContactStore :: new ( surreal_wrapper . clone ( ) ) ) ;
88
109
89
110
Ok ( DbContext {
90
111
contact_store,
0 commit comments