1
1
use std:: collections:: BTreeMap ;
2
2
3
- use diesel:: RunQueryDsl ;
3
+ use diesel:: { RunQueryDsl , row:: NamedRow , deserialize:: { self , FromSql } , backend:: Backend , sql_types:: Integer } ;
4
+
5
+ // Simple struct to receive row_id without derive macros to avoid non-local impl warnings
6
+ struct RowId {
7
+ row_id : i32 ,
8
+ }
9
+
10
+ impl < DB > diesel:: deserialize:: QueryableByName < DB > for RowId
11
+ where
12
+ DB : Backend ,
13
+ i32 : FromSql < Integer , DB > ,
14
+ {
15
+ fn build < R : NamedRow < DB > > ( row : & R ) -> deserialize:: Result < Self > {
16
+ Ok ( RowId {
17
+ row_id : NamedRow :: get ( row, "row_id" ) ?,
18
+ } )
19
+ }
20
+ }
4
21
use thiserror:: Error ;
5
22
use vit_servicing_station_lib:: db:: models:: {
6
23
api_tokens:: ApiTokenData ,
@@ -11,11 +28,6 @@ use vit_servicing_station_lib::db::models::{
11
28
} ;
12
29
use vit_servicing_station_lib:: db:: DbConnection ;
13
30
14
- #[ derive( diesel:: QueryableByName ) ]
15
- struct RowId {
16
- #[ sql_type = "diesel::sql_types::Integer" ]
17
- row_id : i32 ,
18
- }
19
31
20
32
pub struct DbInserter < ' a > {
21
33
connection : & ' a DbConnection ,
@@ -199,60 +211,60 @@ impl<'a> DbInserter<'a> {
199
211
. bind :: < diesel:: sql_types:: Text , _ > ( & fund. fund_name )
200
212
. bind :: < diesel:: sql_types:: Text , _ > ( & fund. fund_goal )
201
213
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
202
- chrono:: NaiveDateTime :: from_timestamp_millis (
214
+ chrono:: DateTime :: from_timestamp_millis (
203
215
fund. registration_snapshot_time * 1000 ,
204
- ) ,
216
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
205
217
)
206
218
. bind :: < diesel:: sql_types:: BigInt , _ > ( fund. voting_power_threshold )
207
219
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
208
- chrono:: NaiveDateTime :: from_timestamp_millis ( fund. fund_start_time * 1000 ) ,
220
+ chrono:: DateTime :: from_timestamp_millis ( fund. fund_start_time * 1000 ) . map ( |dt| dt . naive_utc ( ) ) ,
209
221
)
210
222
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
211
- chrono:: NaiveDateTime :: from_timestamp_millis ( fund. fund_end_time * 1000 ) ,
223
+ chrono:: DateTime :: from_timestamp_millis ( fund. fund_end_time * 1000 ) . map ( |dt| dt . naive_utc ( ) ) ,
212
224
)
213
225
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
214
- chrono:: NaiveDateTime :: from_timestamp_millis (
226
+ chrono:: DateTime :: from_timestamp_millis (
215
227
fund. stage_dates . insight_sharing_start * 1000 ,
216
- ) ,
228
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
217
229
)
218
230
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
219
- chrono:: NaiveDateTime :: from_timestamp_millis (
231
+ chrono:: DateTime :: from_timestamp_millis (
220
232
fund. stage_dates . proposal_submission_start * 1000 ,
221
- ) ,
233
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
222
234
)
223
235
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
224
- chrono:: NaiveDateTime :: from_timestamp_millis (
236
+ chrono:: DateTime :: from_timestamp_millis (
225
237
fund. stage_dates . refine_proposals_start * 1000 ,
226
- ) ,
238
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
227
239
)
228
240
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
229
- chrono:: NaiveDateTime :: from_timestamp_millis (
241
+ chrono:: DateTime :: from_timestamp_millis (
230
242
fund. stage_dates . finalize_proposals_start * 1000 ,
231
- ) ,
243
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
232
244
)
233
245
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
234
- chrono:: NaiveDateTime :: from_timestamp_millis (
246
+ chrono:: DateTime :: from_timestamp_millis (
235
247
fund. stage_dates . proposal_assessment_start * 1000 ,
236
- ) ,
248
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
237
249
)
238
250
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
239
- chrono:: NaiveDateTime :: from_timestamp_millis (
251
+ chrono:: DateTime :: from_timestamp_millis (
240
252
fund. stage_dates . assessment_qa_start * 1000 ,
241
- ) ,
253
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
242
254
)
243
255
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
244
- chrono:: NaiveDateTime :: from_timestamp_millis (
256
+ chrono:: DateTime :: from_timestamp_millis (
245
257
fund. stage_dates . snapshot_start * 1000 ,
246
- ) ,
258
+ ) . map ( |dt| dt . naive_utc ( ) ) ,
247
259
)
248
260
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
249
- chrono:: NaiveDateTime :: from_timestamp_millis ( fund. stage_dates . voting_start * 1000 ) ,
261
+ chrono:: DateTime :: from_timestamp_millis ( fund. stage_dates . voting_start * 1000 ) . map ( |dt| dt . naive_utc ( ) ) ,
250
262
)
251
263
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
252
- chrono:: NaiveDateTime :: from_timestamp_millis ( fund. stage_dates . voting_end * 1000 ) ,
264
+ chrono:: DateTime :: from_timestamp_millis ( fund. stage_dates . voting_end * 1000 ) . map ( |dt| dt . naive_utc ( ) ) ,
253
265
)
254
266
. bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
255
- chrono:: NaiveDateTime :: from_timestamp_millis ( fund. stage_dates . tallying_end * 1000 ) ,
267
+ chrono:: DateTime :: from_timestamp_millis ( fund. stage_dates . tallying_end * 1000 ) . map ( |dt| dt . naive_utc ( ) ) ,
256
268
)
257
269
. bind :: < diesel:: sql_types:: Jsonb , _ > ( serde_json:: json!( {
258
270
"url" : {
0 commit comments