@@ -3,8 +3,8 @@ import { IDataEngine } from '@objectstack/core';
33import type {
44 BatchUpdateRequest ,
55 BatchUpdateResponse ,
6- UpdateManyRequest ,
7- DeleteManyRequest ,
6+ UpdateManyDataRequest ,
7+ DeleteManyDataRequest ,
88 BatchOperationResult
99} from '@objectstack/spec/api' ;
1010import type { MetadataCacheRequest , MetadataCacheResponse } from '@objectstack/spec/api' ;
@@ -122,7 +122,9 @@ export class ObjectStackProtocolImplementation implements ObjectStackProtocol {
122122 const records = await this . engine . find ( request . object , options ) ;
123123 return {
124124 object : request . object ,
125- records
125+ records,
126+ total : records . length ,
127+ hasMore : false
126128 } ;
127129 }
128130
@@ -234,17 +236,16 @@ export class ObjectStackProtocolImplementation implements ObjectStackProtocol {
234236 } ;
235237 }
236238
237- async updateManyData ( request : UpdateManyRequest ) : Promise < any > {
238- return this . engine . update ( request . object , request . data , {
239- filter : request . filter ,
240- multi : true
241- } ) ;
239+ async updateManyData ( request : UpdateManyDataRequest ) : Promise < any > {
240+ // TODO: Implement proper updateMany in DataEngine
241+ throw new Error ( 'updateManyData not implemented' ) ;
242242 }
243243
244- async deleteManyData ( request : DeleteManyRequest ) : Promise < any > {
244+ async deleteManyData ( request : DeleteManyDataRequest ) : Promise < any > {
245+ // This expects deleting by IDs.
245246 return this . engine . delete ( request . object , {
246- filter : request . filter ,
247- multi : true
247+ filter : { _id : { $in : request . ids } } ,
248+ ... request . options
248249 } ) ;
249250 }
250251
@@ -259,36 +260,49 @@ export class ObjectStackProtocolImplementation implements ObjectStackProtocol {
259260 ...request ,
260261 createdAt : new Date ( ) . toISOString ( ) ,
261262 updatedAt : new Date ( ) . toISOString ( ) ,
262- owner : 'system'
263- } ;
263+ createdBy : 'system' ,
264+ updatedBy : 'system'
265+ } as SavedView ;
266+
264267 this . viewStorage . set ( id , view ) ;
265- return { success : true , view } ;
268+ return { success : true , data : view } ;
266269 }
267270
268271 async getView ( request : { id : string } ) : Promise < ViewResponse > {
269272 const view = this . viewStorage . get ( request . id ) ;
270273 if ( ! view ) throw new Error ( `View ${ request . id } not found` ) ;
271- return { success : true , view } ;
274+ return { success : true , data : view } ;
272275 }
273276
274277 async listViews ( request : ListViewsRequest ) : Promise < ListViewsResponse > {
275278 const views = Array . from ( this . viewStorage . values ( ) )
276279 . filter ( v => ! request ?. object || v . object === request . object ) ;
277- return { success : true , views, total : views . length } ;
280+
281+ return {
282+ success : true ,
283+ data : views ,
284+ pagination : {
285+ total : views . length ,
286+ limit : request . limit || 50 ,
287+ offset : request . offset || 0 ,
288+ hasMore : false
289+ }
290+ } ;
278291 }
279292
280293 async updateView ( request : UpdateViewRequest ) : Promise < ViewResponse > {
281294 const view = this . viewStorage . get ( request . id ) ;
282295 if ( ! view ) throw new Error ( `View ${ request . id } not found` ) ;
283296
284- const updated = { ...view , ...request . updates , updatedAt : new Date ( ) . toISOString ( ) } ;
297+ const { id, ...updates } = request ;
298+ const updated = { ...view , ...updates , updatedAt : new Date ( ) . toISOString ( ) } ;
285299 this . viewStorage . set ( request . id , updated ) ;
286- return { success : true , view : updated } ;
300+ return { success : true , data : updated } ;
287301 }
288302
289- async deleteView ( request : { id : string } ) : Promise < { success : boolean } > {
303+ async deleteView ( request : { id : string } ) : Promise < { success : boolean , object : string , id : string } > {
290304 const deleted = this . viewStorage . delete ( request . id ) ;
291305 if ( ! deleted ) throw new Error ( `View ${ request . id } not found` ) ;
292- return { success : true } ;
306+ return { success : true , object : 'view' , id : request . id } ;
293307 }
294308}
0 commit comments