@@ -301,50 +301,53 @@ export class HttpDispatcher {
301301
302302 // POST /data/:object/query
303303 if ( action === 'query' && m === 'POST' ) {
304+ // Spec: broker returns FindDataResponse = { object, records, total?, hasMore? }
304305 const result = await broker . call ( 'data.query' , { object : objectName , ...body } , { request : context . request } ) ;
305- return { handled : true , response : this . success ( result . data , { count : result . count , limit : body . limit , skip : body . skip } ) } ;
306+ return { handled : true , response : this . success ( result ) } ;
306307 }
307308
308309 // POST /data/:object/batch
309310 if ( action === 'batch' && m === 'POST' ) {
310- // Spec complaint: forward the whole body { operation, records, options }
311- // Implementation in Kernel should handle the 'operation' field
312311 const result = await broker . call ( 'data.batch' , { object : objectName , ...body } , { request : context . request } ) ;
313312 return { handled : true , response : this . success ( result ) } ;
314313 }
315314
316315 // GET /data/:object/:id
317316 if ( parts . length === 2 && m === 'GET' ) {
318317 const id = parts [ 1 ] ;
319- const data = await broker . call ( 'data.get' , { object : objectName , id, ...query } , { request : context . request } ) ;
320- return { handled : true , response : this . success ( data ) } ;
318+ // Spec: broker returns GetDataResponse = { object, id, record }
319+ const result = await broker . call ( 'data.get' , { object : objectName , id, ...query } , { request : context . request } ) ;
320+ return { handled : true , response : this . success ( result ) } ;
321321 }
322322
323323 // PATCH /data/:object/:id
324324 if ( parts . length === 2 && m === 'PATCH' ) {
325325 const id = parts [ 1 ] ;
326- const data = await broker . call ( 'data.update' , { object : objectName , id, data : body } , { request : context . request } ) ;
327- return { handled : true , response : this . success ( data ) } ;
326+ // Spec: broker returns UpdateDataResponse = { object, id, record }
327+ const result = await broker . call ( 'data.update' , { object : objectName , id, data : body } , { request : context . request } ) ;
328+ return { handled : true , response : this . success ( result ) } ;
328329 }
329330
330331 // DELETE /data/:object/:id
331332 if ( parts . length === 2 && m === 'DELETE' ) {
332333 const id = parts [ 1 ] ;
333- await broker . call ( 'data.delete' , { object : objectName , id } , { request : context . request } ) ;
334- return { handled : true , response : this . success ( { id, deleted : true } ) } ;
334+ // Spec: broker returns DeleteDataResponse = { object, id, deleted }
335+ const result = await broker . call ( 'data.delete' , { object : objectName , id } , { request : context . request } ) ;
336+ return { handled : true , response : this . success ( result ) } ;
335337 }
336338 } else {
337339 // GET /data/:object (List)
338340 if ( m === 'GET' ) {
341+ // Spec: broker returns FindDataResponse = { object, records, total?, hasMore? }
339342 const result = await broker . call ( 'data.query' , { object : objectName , filters : query } , { request : context . request } ) ;
340- return { handled : true , response : this . success ( result . data , { count : result . count } ) } ;
343+ return { handled : true , response : this . success ( result ) } ;
341344 }
342345
343346 // POST /data/:object (Create)
344347 if ( m === 'POST' ) {
345- const data = await broker . call ( 'data.create' , { object : objectName , data : body } , { request : context . request } ) ;
346- // Note: ideally 201
347- const res = this . success ( data ) ;
348+ // Spec: broker returns CreateDataResponse = { object, id, record }
349+ const result = await broker . call ( 'data.create' , { object : objectName , data : body } , { request : context . request } ) ;
350+ const res = this . success ( result ) ;
348351 res . status = 201 ;
349352 return { handled : true , response : res } ;
350353 }
0 commit comments