1- use std:: { env , sync:: Arc } ;
1+ use std:: sync:: Arc ;
22
33use actix_web:: { HttpResponse , get, post, web} ;
44use futures_util:: StreamExt ;
@@ -32,7 +32,6 @@ async fn get_datapoints(
3232 let clickhouse = clickhouse. into_inner ( ) . as_ref ( ) . clone ( ) ;
3333 let query = params. into_inner ( ) ;
3434
35- // Still get dataset metadata from PostgreSQL
3635 let dataset_id =
3736 db:: datasets:: get_dataset_id_by_name ( & db. pool , & query. name , project_id) . await ?;
3837
@@ -52,10 +51,8 @@ async fn get_datapoints(
5251 )
5352 . await ?;
5453
55- // Get total count from ClickHouse
5654 let total_count = ch_datapoints:: count_datapoints ( clickhouse, project_id, dataset_id) . await ?;
5755
58- // Convert CHDatapoints to Datapoints
5956 let datapoints: Vec < Datapoint > = ch_datapoints
6057 . into_iter ( )
6158 . map ( |ch_dp| ch_dp. into ( ) )
@@ -108,7 +105,6 @@ async fn create_datapoints(
108105 } ) ) ) ;
109106 }
110107
111- // Get dataset metadata from PostgreSQL
112108 let dataset_id =
113109 db:: datasets:: get_dataset_id_by_name ( & db. pool , & request. dataset_name , project_id) . await ?;
114110
@@ -131,13 +127,11 @@ async fn create_datapoints(
131127 } )
132128 . collect ( ) ;
133129
134- // Convert to ClickHouse datapoints
135130 let ch_datapoints: Vec < ch_datapoints:: CHDatapoint > = datapoints
136131 . iter ( )
137132 . map ( |dp| ch_datapoints:: CHDatapoint :: from_datapoint ( dp, project_id) )
138133 . collect ( ) ;
139134
140- // Insert into ClickHouse
141135 ch_datapoints:: insert_datapoints ( clickhouse, ch_datapoints) . await ?;
142136
143137 Ok ( HttpResponse :: Created ( ) . json ( serde_json:: json!( {
@@ -160,7 +154,6 @@ async fn get_parquet(
160154 let project_id = project_api_key. project_id ;
161155 let db = db. into_inner ( ) ;
162156
163- // Get parquet paths from database
164157 let parquet_path =
165158 db:: datasets:: get_parquet_path ( & db. pool , project_id, dataset_id, & name) . await ?;
166159
@@ -170,15 +163,14 @@ async fn get_parquet(
170163 } ) ) ) ;
171164 } ;
172165
173- // Get object metadata to determine file size
174- let content_length = storage
175- . get_size ( & parquet_path, & env:: var ( "S3_EXPORTS_BUCKET" ) . ok ( ) )
176- . await ?;
166+ let Ok ( bucket) = std:: env:: var ( "S3_EXPORTS_BUCKET" ) else {
167+ return Ok ( HttpResponse :: InternalServerError ( ) . json ( serde_json:: json!( {
168+ "error" : "exports storage is not configured"
169+ } ) ) ) ;
170+ } ;
171+ let content_length = storage. get_size ( & bucket, & parquet_path) . await ?;
177172
178- // Stream the file from S3
179- let get_response = storage
180- . get_stream ( & parquet_path, & env:: var ( "S3_EXPORTS_BUCKET" ) . ok ( ) )
181- . await ?;
173+ let get_response = storage. get_stream ( & bucket, & parquet_path) . await ?;
182174
183175 let filename = parquet_path. split ( '/' ) . last ( ) . unwrap_or ( & name) ;
184176
0 commit comments