1
1
use common_utils:: ext_traits:: AsyncExt ;
2
2
use diesel_models:: configs:: ConfigUpdateInternal ;
3
- use error_stack:: ResultExt ;
3
+ use error_stack:: { report , ResultExt } ;
4
4
use router_env:: { instrument, tracing} ;
5
5
use storage_impl:: redis:: {
6
6
cache:: { CacheKind , CONFIG_CACHE } ,
@@ -65,7 +65,10 @@ impl ConfigInterface for Store {
65
65
config : storage:: ConfigNew ,
66
66
) -> CustomResult < storage:: Config , errors:: StorageError > {
67
67
let conn = connection:: pg_connection_write ( self ) . await ?;
68
- config. insert ( & conn) . await . map_err ( Into :: into)
68
+ config
69
+ . insert ( & conn)
70
+ . await
71
+ . map_err ( |error| report ! ( errors:: StorageError :: from( error) ) )
69
72
}
70
73
71
74
#[ instrument( skip_all) ]
@@ -77,7 +80,7 @@ impl ConfigInterface for Store {
77
80
let conn = connection:: pg_connection_write ( self ) . await ?;
78
81
storage:: Config :: update_by_key ( & conn, key, config_update)
79
82
. await
80
- . map_err ( Into :: into )
83
+ . map_err ( |error| report ! ( errors :: StorageError :: from ( error ) ) )
81
84
}
82
85
83
86
//update in DB and remove in redis and cache
@@ -101,7 +104,7 @@ impl ConfigInterface for Store {
101
104
let conn = connection:: pg_connection_write ( self ) . await ?;
102
105
storage:: Config :: find_by_key ( & conn, key)
103
106
. await
104
- . map_err ( Into :: into )
107
+ . map_err ( |error| report ! ( errors :: StorageError :: from ( error ) ) )
105
108
}
106
109
107
110
//check in cache, then redis then finally DB, and on the way back populate redis and cache
@@ -114,7 +117,7 @@ impl ConfigInterface for Store {
114
117
let conn = connection:: pg_connection_write ( self ) . await ?;
115
118
storage:: Config :: find_by_key ( & conn, key)
116
119
. await
117
- . map_err ( Into :: into )
120
+ . map_err ( |error| report ! ( errors :: StorageError :: from ( error ) ) )
118
121
} ;
119
122
cache:: get_or_populate_in_memory ( self , key, find_config_by_key_from_db, & CONFIG_CACHE ) . await
120
123
}
@@ -130,7 +133,7 @@ impl ConfigInterface for Store {
130
133
let conn = connection:: pg_connection_write ( self ) . await ?;
131
134
match storage:: Config :: find_by_key ( & conn, key)
132
135
. await
133
- . map_err ( Into :: < errors:: StorageError > :: into )
136
+ . map_err ( |error| report ! ( errors:: StorageError :: from ( error ) ) )
134
137
{
135
138
Ok ( a) => Ok ( a) ,
136
139
Err ( err) => {
@@ -144,7 +147,7 @@ impl ConfigInterface for Store {
144
147
}
145
148
. insert ( & conn)
146
149
. await
147
- . map_err ( Into :: into )
150
+ . map_err ( |error| report ! ( errors :: StorageError :: from ( error ) ) )
148
151
} )
149
152
. await
150
153
} else {
@@ -165,7 +168,7 @@ impl ConfigInterface for Store {
165
168
let conn = connection:: pg_connection_write ( self ) . await ?;
166
169
let deleted = storage:: Config :: delete_by_key ( & conn, key)
167
170
. await
168
- . map_err ( Into :: into ) ?;
171
+ . map_err ( |error| report ! ( errors :: StorageError :: from ( error ) ) ) ?;
169
172
170
173
self . get_redis_conn ( )
171
174
. map_err ( Into :: < errors:: StorageError > :: into) ?
@@ -187,10 +190,7 @@ impl ConfigInterface for MockDb {
187
190
let mut configs = self . configs . lock ( ) . await ;
188
191
189
192
let config_new = storage:: Config {
190
- id : configs
191
- . len ( )
192
- . try_into ( )
193
- . change_context ( errors:: StorageError :: MockDbError ) ?,
193
+ id : i32:: try_from ( configs. len ( ) ) . change_context ( errors:: StorageError :: MockDbError ) ?,
194
194
key : config. key ,
195
195
config : config. config ,
196
196
} ;
0 commit comments