@@ -2,13 +2,12 @@ import 'dart:convert';
22import 'dart:io' ;
33
44import 'package:dart_frog/dart_frog.dart' ;
5+ import 'package:ht_api/src/helpers/response_helper.dart' ;
6+ import 'package:ht_api/src/rbac/permission_service.dart' ;
57import 'package:ht_api/src/registry/model_registry.dart' ;
68import 'package:ht_data_repository/ht_data_repository.dart' ;
7- import 'package:ht_api/src/rbac/permission_service.dart' ;
89import 'package:ht_shared/ht_shared.dart' ;
910
10- import '../../../_middleware.dart' ; // For RequestId
11-
1211/// Handles requests for the /api/v1/data collection endpoint.
1312/// Dispatches requests to specific handlers based on the HTTP method.
1413Future <Response > onRequest (RequestContext context) async {
@@ -31,7 +30,6 @@ Future<Response> _handleGet(RequestContext context) async {
3130 final modelName = context.read <String >();
3231 final modelConfig = context.read <ModelConfig <dynamic >>();
3332 final authenticatedUser = context.read <User >();
34- final requestId = context.read <RequestId >().id;
3533
3634 // --- Parse Query Parameters ---
3735 final params = context.request.uri.queryParameters;
@@ -64,7 +62,7 @@ Future<Response> _handleGet(RequestContext context) async {
6462 })
6563 .toList ();
6664 } catch (e) {
67- throw BadRequestException (
65+ throw const BadRequestException (
6866 'Invalid "sort" parameter format. Use "field:order,field2:order".' ,
6967 );
7068 }
@@ -134,24 +132,12 @@ Future<Response> _handleGet(RequestContext context) async {
134132 );
135133 }
136134
137- // --- Format and Return Response ---
138- final metadata = ResponseMetadata (
139- requestId: requestId,
140- timestamp: DateTime .now ().toUtc (),
141- );
142-
143- final successResponse = SuccessApiResponse <dynamic >(
135+ return ResponseHelper .success (
136+ context: context,
144137 data: responseData,
145- metadata: metadata,
146- );
147-
148- final responseJson = successResponse.toJson (
149- (paginated) => (paginated as PaginatedResponse <dynamic >).toJson (
150- (item) => (item as dynamic ).toJson (),
151- ),
138+ toJsonT: (paginated) => (paginated as PaginatedResponse <dynamic >)
139+ .toJson ((item) => (item as dynamic ).toJson ()),
152140 );
153-
154- return Response .json (body: responseJson);
155141}
156142
157143/// Handles POST requests: Creates a new item in a collection.
@@ -160,7 +146,6 @@ Future<Response> _handlePost(RequestContext context) async {
160146 final modelName = context.read <String >();
161147 final modelConfig = context.read <ModelConfig <dynamic >>();
162148 final authenticatedUser = context.read <User >();
163- final requestId = context.read <RequestId >().id;
164149
165150 // --- Parse Body ---
166151 final requestBody = await context.request.json () as Map <String , dynamic >? ;
@@ -221,20 +206,10 @@ Future<Response> _handlePost(RequestContext context) async {
221206 );
222207 }
223208
224- // --- Format and Return Response ---
225- final metadata = ResponseMetadata (
226- requestId: requestId,
227- timestamp: DateTime .now ().toUtc (),
228- );
229-
230- final successResponse = SuccessApiResponse <dynamic >(
209+ return ResponseHelper .success (
210+ context: context,
231211 data: createdItem,
232- metadata: metadata,
212+ toJsonT: (item) => (item as dynamic ).toJson (),
213+ statusCode: HttpStatus .created,
233214 );
234-
235- final responseJson = successResponse.toJson (
236- (item) => (item as dynamic ).toJson (),
237- );
238-
239- return Response .json (statusCode: HttpStatus .created, body: responseJson);
240215}
0 commit comments