11use std:: collections:: BTreeMap ;
22
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+ }
421use thiserror:: Error ;
522use vit_servicing_station_lib:: db:: models:: {
623 api_tokens:: ApiTokenData ,
@@ -11,11 +28,6 @@ use vit_servicing_station_lib::db::models::{
1128} ;
1229use vit_servicing_station_lib:: db:: DbConnection ;
1330
14- #[ derive( diesel:: QueryableByName ) ]
15- struct RowId {
16- #[ sql_type = "diesel::sql_types::Integer" ]
17- row_id : i32 ,
18- }
1931
2032pub struct DbInserter < ' a > {
2133 connection : & ' a DbConnection ,
@@ -199,60 +211,60 @@ impl<'a> DbInserter<'a> {
199211 . bind :: < diesel:: sql_types:: Text , _ > ( & fund. fund_name )
200212 . bind :: < diesel:: sql_types:: Text , _ > ( & fund. fund_goal )
201213 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
202- chrono:: NaiveDateTime :: from_timestamp_millis (
214+ chrono:: DateTime :: from_timestamp_millis (
203215 fund. registration_snapshot_time * 1000 ,
204- ) ,
216+ ) . map ( |dt| dt . naive_utc ( ) ) ,
205217 )
206218 . bind :: < diesel:: sql_types:: BigInt , _ > ( fund. voting_power_threshold )
207219 . 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 ( ) ) ,
209221 )
210222 . 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 ( ) ) ,
212224 )
213225 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
214- chrono:: NaiveDateTime :: from_timestamp_millis (
226+ chrono:: DateTime :: from_timestamp_millis (
215227 fund. stage_dates . insight_sharing_start * 1000 ,
216- ) ,
228+ ) . map ( |dt| dt . naive_utc ( ) ) ,
217229 )
218230 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
219- chrono:: NaiveDateTime :: from_timestamp_millis (
231+ chrono:: DateTime :: from_timestamp_millis (
220232 fund. stage_dates . proposal_submission_start * 1000 ,
221- ) ,
233+ ) . map ( |dt| dt . naive_utc ( ) ) ,
222234 )
223235 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
224- chrono:: NaiveDateTime :: from_timestamp_millis (
236+ chrono:: DateTime :: from_timestamp_millis (
225237 fund. stage_dates . refine_proposals_start * 1000 ,
226- ) ,
238+ ) . map ( |dt| dt . naive_utc ( ) ) ,
227239 )
228240 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
229- chrono:: NaiveDateTime :: from_timestamp_millis (
241+ chrono:: DateTime :: from_timestamp_millis (
230242 fund. stage_dates . finalize_proposals_start * 1000 ,
231- ) ,
243+ ) . map ( |dt| dt . naive_utc ( ) ) ,
232244 )
233245 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
234- chrono:: NaiveDateTime :: from_timestamp_millis (
246+ chrono:: DateTime :: from_timestamp_millis (
235247 fund. stage_dates . proposal_assessment_start * 1000 ,
236- ) ,
248+ ) . map ( |dt| dt . naive_utc ( ) ) ,
237249 )
238250 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
239- chrono:: NaiveDateTime :: from_timestamp_millis (
251+ chrono:: DateTime :: from_timestamp_millis (
240252 fund. stage_dates . assessment_qa_start * 1000 ,
241- ) ,
253+ ) . map ( |dt| dt . naive_utc ( ) ) ,
242254 )
243255 . bind :: < diesel:: sql_types:: Nullable < diesel:: sql_types:: Timestamp > , _ > (
244- chrono:: NaiveDateTime :: from_timestamp_millis (
256+ chrono:: DateTime :: from_timestamp_millis (
245257 fund. stage_dates . snapshot_start * 1000 ,
246- ) ,
258+ ) . map ( |dt| dt . naive_utc ( ) ) ,
247259 )
248260 . 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 ( ) ) ,
250262 )
251263 . 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 ( ) ) ,
253265 )
254266 . 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 ( ) ) ,
256268 )
257269 . bind :: < diesel:: sql_types:: Jsonb , _ > ( serde_json:: json!( {
258270 "url" : {
0 commit comments