@@ -38,7 +38,6 @@ use cubesql::{telemetry::ReportingLogger, CubeError};
3838
3939use neon:: prelude:: * ;
4040use neon:: types:: buffer:: TypedArray ;
41- use serde:: Deserialize ;
4241use cubeorchestrator:: cubestore_result_transform:: transform_data;
4342use cubeorchestrator:: types:: { TransformDataRequest } ;
4443
@@ -546,37 +545,29 @@ fn get_cubestore_result(mut cx: FunctionContext) -> JsResult<JsValue> {
546545 Ok ( js_array. upcast ( ) )
547546}
548547
549- fn js_object_to_struct < T > ( cx : & mut FunctionContext ) -> Result < T , neon:: result:: Throw >
550- where
551- T : for < ' de > Deserialize < ' de > ,
552- {
548+ fn transform_query_data ( mut cx : FunctionContext ) -> JsResult < JsObject > {
553549 let json_str = cx
554550 . argument :: < JsString > ( 0 ) ?
555- . value ( cx) ;
556-
557- let result: Result < T , serde_json:: Error > = serde_json:: from_str ( & json_str) ;
558- match result {
559- Ok ( value) => Ok ( value) ,
560- Err ( err) => cx. throw_error ( err. to_string ( ) ) ,
561- }
562- }
551+ . value ( & mut cx) ;
552+ let request_data = match serde_json:: from_str :: < TransformDataRequest > ( & json_str) {
553+ Ok ( data) => data,
554+ Err ( err) => return cx. throw_error ( err. to_string ( ) ) ,
555+ } ;
563556
564- fn transform_query_data ( mut cx : FunctionContext ) -> JsResult < JsObject > {
565- let request_data: TransformDataRequest = js_object_to_struct ( & mut cx) ?;
557+ let cube_store_result = cx. argument :: < JsBox < CubeStoreResult > > ( 1 ) ?;
566558
567559 let alias_to_member_name_map = & request_data. alias_to_member_name_map ;
568560 let annotation = & request_data. annotation ;
569- let data = & request_data. data ;
570561 let query = & request_data. query ;
571- let query_type = & request_data. query_type ;
562+ let query_type = & request_data. query_type . unwrap_or_default ( ) ;
572563 let res_type = & request_data. res_type ;
573564
574565 let transformed = match transform_data (
575566 alias_to_member_name_map,
576567 annotation,
577- data . clone ( ) ,
568+ & * * cube_store_result ,
578569 query,
579- query_type,
570+ & query_type,
580571 res_type. clone ( ) ,
581572 ) {
582573 Ok ( data) => data,
0 commit comments