@elastic.io/oih-standard-library
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["delete.ts"],"names":[],"mappings":"AAEA,8BAAsB,MAAM;IAExB,SAAS,CAAC,MAAM,MAAC;gBAEE,MAAM,EAAE,GAAG;IAI9B;;;;;;OAMG;aACmB,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAE/D;;;;;;OAMG;aACmB,YAAY,CAAC,MAAM,KAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAElE;;;;;;OAMG;IAEI,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAI,GAAG;CAG3C;AAED,8BAAsB,UAAW,SAAQ,MAAM;IAE9B,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAyBtD;;;;;;OAMG;IAEI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;CAGxC;AAED,8BAAsB,sBAAwB,SAAQ,MAAM;IAE3C,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAoCtD;;;;;;OAMG;IAEI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;QACpC,cAAc,EAAE,GAAG,CAAC;QACpB,KAAK,EAAE,GAAG,CAAA;KACb;IASD;;;;;;;OAOG;aACmB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;QAC9F,MAAM,EAAE,GAAG,CAAC;QACZ,eAAe,EAAE,MAAM,CAAC;KAC3B,CAAC;CACL"} | ||
| {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["delete.ts"],"names":[],"mappings":"AAEA,8BAAsB,MAAM;IAE1B,SAAS,CAAC,MAAM,MAAC;gBAEE,MAAM,EAAE,GAAG;IAI5B;;;;;;OAMG;aACiB,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAE7D;;;;;;OAMG;aACiB,YAAY,CAAC,MAAM,KAAA,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAEhE;;;;;;OAMG;IAEE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;CAGxC;AAED,8BAAsB,UAAW,SAAQ,MAAM;IAEhC,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAwBpD;;;;;;OAMG;IAEE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG;CAGtC;AAED,8BAAsB,sBAAuB,SAAQ,MAAM;IAE5C,OAAO,CAAC,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,KAAA,GAAG,OAAO,CAAC,GAAG,CAAC;IAmCpD;;;;;;OAMG;IAEE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG;QACtC,cAAc,EAAE,GAAG,CAAC;QACpB,KAAK,EAAE,GAAG,CAAC;KACZ;IASC;;;;;;;OAOG;aACiB,oBAAoB,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;QAChG,MAAM,EAAE,GAAG,CAAC;QACZ,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH"} |
@@ -71,3 +71,3 @@ "use strict"; | ||
| if (foundObject.numberOfObjects > 1) { | ||
| throw new Error('Found more than 1 object for provided criteria: ' + JSON.stringify(criteria)); | ||
| throw new Error(`Found more than 1 object for provided criteria: ${JSON.stringify(criteria)}`); | ||
| } | ||
@@ -108,4 +108,4 @@ if (foundObject.numberOfObjects === 0) { | ||
| return { | ||
| value, | ||
| uniqueCriteria: fieldName, | ||
| value, | ||
| }; | ||
@@ -112,0 +112,0 @@ } |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"delete.js","sourceRoot":"","sources":["delete.ts"],"names":[],"mappings":";;AAAA,4CAA8D;AAE9D,MAAsB,MAAM;IAIxB,YAAmB,MAAW;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACxB,CAAC;IAoBD;;;;;;OAMG;IACH,aAAa;IACN,OAAO,CAAC,GAAQ,EAAE,GAAQ;QAC7B,OAAO,GAAG,CAAC,sBAAU,CAAC,CAAC;IAC3B,CAAC;CACJ;AArCD,wBAqCC;AAED,MAAsB,UAAW,SAAQ,MAAM;IAEpC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ;QACnC,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACxD,IAAI,SAAS,KAAK,IAAI,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sFAAsF,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gBACpH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;gBAC1D,OAAO,EAAE,CAAC;aACb;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0DAA0D,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC1D,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;SAC5B;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAGD;;;;;;OAMG;IACH,aAAa;IACN,KAAK,CAAC,GAAQ,EAAE,GAAQ;QAC3B,OAAO,GAAG,CAAC,cAAE,CAAC,CAAA;IAClB,CAAC;CACJ;AAtCD,gCAsCC;AAED,MAAsB,sBAAwB,SAAQ,MAAM;IAEjD,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ;QACnC,IAAI;YACA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sDAAsD,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC1F,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9E,IAAI,WAAW,CAAC,eAAe,GAAG,CAAC,EAAE;gBACjC,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;aAClG;YACD,IAAI,WAAW,CAAC,eAAe,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6EAA6E,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACjH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACtE,OAAO,EAAE,CAAC;aACb;YACD,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;YACvD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,EAAE,KAAK,IAAI,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mGAAmG,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACvI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACtE,OAAO,EAAE,CAAA;aACZ;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gEAAgE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACtE,OAAO,EAAE,EAAE,EAAE,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+DAA+D,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3F,MAAM,CAAC,CAAC;SACX;IACL,CAAC;IAGD;;;;;;OAMG;IACH,aAAa;IACN,WAAW,CAAC,GAAQ,EAAE,GAAQ;QAIjC,MAAM,SAAS,GAAG,GAAG,CAAC,0BAAc,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO;YACH,cAAc,EAAE,SAAS;YACzB,KAAK;SACR,CAAA;IACL,CAAC;CAcJ;AAtED,wDAsEC"} | ||
| {"version":3,"file":"delete.js","sourceRoot":"","sources":["delete.ts"],"names":[],"mappings":"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"} |
+83
-86
@@ -5,7 +5,7 @@ import { id, objectType, uniqueCriteria } from '../constants'; | ||
| protected logger; | ||
| protected logger; | ||
| public constructor(logger: any) { | ||
| this.logger = logger; | ||
| } | ||
| public constructor(logger: any) { | ||
| this.logger = logger; | ||
| } | ||
@@ -19,3 +19,3 @@ /** | ||
| */ | ||
| public abstract async process(msg, cfg, snapshot): Promise<any>; | ||
| public abstract async process(msg, cfg, snapshot): Promise<any>; | ||
@@ -29,3 +29,3 @@ /** | ||
| */ | ||
| public abstract async deleteObject(object, cfg, msg): Promise<any>; | ||
| public abstract async deleteObject(object, cfg, msg): Promise<any>; | ||
@@ -40,5 +40,5 @@ /** | ||
| // @ts-ignore | ||
| public getType(cfg: any, msg: any,): any { | ||
| return cfg[objectType]; | ||
| } | ||
| public getType(cfg: any, msg: any): any { | ||
| return cfg[objectType]; | ||
| } | ||
| } | ||
@@ -48,27 +48,26 @@ | ||
| public async process(msg, cfg, snapshot): Promise<any> { | ||
| try { | ||
| this.logger.info('Starting processing deleteById action'); | ||
| this.logger.trace('Incoming configuration: %j', cfg); | ||
| this.logger.trace('Incoming message: %j', msg); | ||
| this.logger.trace('Incoming snapshot: %j', snapshot); | ||
| const id = this.getId(msg, cfg); | ||
| const type = this.getType(cfg, msg); | ||
| this.logger.trace('Id: %j and type: %j of object to be deleted', id, type); | ||
| const deletedId = await this.deleteObject(id, cfg, msg); | ||
| if (deletedId === null) { | ||
| this.logger.trace('Object with ID: %j and type: %j was not deleted or not found. Returning empty object', id, type); | ||
| this.logger.info('Finished processing deleteById action'); | ||
| return {}; | ||
| } | ||
| this.logger.trace('Successfully process delete call for id: %j and type: %j', id, type); | ||
| this.logger.info('Finished processing deleteById action'); | ||
| return { id: deletedId }; | ||
| } catch (e) { | ||
| this.logger.error('Unexpected error while processing delete call for message: %j', msg, e); | ||
| throw e; | ||
| } | ||
| public async process(msg, cfg, snapshot): Promise<any> { | ||
| try { | ||
| this.logger.info('Starting processing deleteById action'); | ||
| this.logger.trace('Incoming configuration: %j', cfg); | ||
| this.logger.trace('Incoming message: %j', msg); | ||
| this.logger.trace('Incoming snapshot: %j', snapshot); | ||
| const id = this.getId(msg, cfg); | ||
| const type = this.getType(cfg, msg); | ||
| this.logger.trace('Id: %j and type: %j of object to be deleted', id, type); | ||
| const deletedId = await this.deleteObject(id, cfg, msg); | ||
| if (deletedId === null) { | ||
| this.logger.trace('Object with ID: %j and type: %j was not deleted or not found. Returning empty object', id, type); | ||
| this.logger.info('Finished processing deleteById action'); | ||
| return {}; | ||
| } | ||
| this.logger.trace('Successfully process delete call for id: %j and type: %j', id, type); | ||
| this.logger.info('Finished processing deleteById action'); | ||
| return { id: deletedId }; | ||
| } catch (e) { | ||
| this.logger.error('Unexpected error while processing delete call for message: %j', msg, e); | ||
| throw e; | ||
| } | ||
| } | ||
| /** | ||
@@ -82,45 +81,44 @@ * Default implementation expects id to be present inside input message `id` param. If you need other behaviour override this method. | ||
| // @ts-ignore | ||
| public getId(msg: any, cfg: any): any { | ||
| return msg[id] | ||
| } | ||
| public getId(msg: any, cfg: any): any { | ||
| return msg[id]; | ||
| } | ||
| } | ||
| export abstract class DeleteByUniqueCriteria extends Delete { | ||
| export abstract class DeleteByUniqueCriteria extends Delete { | ||
| public async process(msg, cfg, snapshot): Promise<any> { | ||
| try { | ||
| this.logger.info('Start processing deleteByUniqueCriteria action'); | ||
| this.logger.trace('Incoming configuration: %j', cfg); | ||
| this.logger.trace('Incoming message: %j', msg); | ||
| this.logger.trace('Incoming snapshot: %j', snapshot); | ||
| const criteria = this.getCriteria(msg, cfg); | ||
| const type = this.getType(cfg, msg); | ||
| this.logger.trace('Start deleting object with criteria: %j and type: %j', criteria, type); | ||
| const foundObject = await this.findObjectByCriteria(criteria, type, cfg, msg); | ||
| if (foundObject.numberOfObjects > 1) { | ||
| throw new Error('Found more than 1 object for provided criteria: ' + JSON.stringify(criteria)); | ||
| } | ||
| if (foundObject.numberOfObjects === 0) { | ||
| this.logger.trace('No objects for criteria: %j and type: %j, were found returning empty object', criteria, type); | ||
| this.logger.info('Finished processing deleteByUniqueCriteria action'); | ||
| return {}; | ||
| } | ||
| const { object } = foundObject; | ||
| this.logger.trace('Start deleting object: %j', object); | ||
| const id = await this.deleteObject(object, cfg, msg); | ||
| if (id === null) { | ||
| this.logger.trace('Object with unique criteria: %j and type: %j was not deleted or not found. Returning empty object', criteria, type); | ||
| this.logger.info('Finished processing deleteByUniqueCriteria action'); | ||
| return {} | ||
| } | ||
| this.logger.trace('Successfully process delete call for criteria: %j and type: %j', criteria, type); | ||
| this.logger.info('Finished processing deleteByUniqueCriteria action'); | ||
| return { id }; | ||
| } catch (e) { | ||
| this.logger.error('Unexpected error while processing delete call for message: %j', msg, e); | ||
| throw e; | ||
| } | ||
| public async process(msg, cfg, snapshot): Promise<any> { | ||
| try { | ||
| this.logger.info('Start processing deleteByUniqueCriteria action'); | ||
| this.logger.trace('Incoming configuration: %j', cfg); | ||
| this.logger.trace('Incoming message: %j', msg); | ||
| this.logger.trace('Incoming snapshot: %j', snapshot); | ||
| const criteria = this.getCriteria(msg, cfg); | ||
| const type = this.getType(cfg, msg); | ||
| this.logger.trace('Start deleting object with criteria: %j and type: %j', criteria, type); | ||
| const foundObject = await this.findObjectByCriteria(criteria, type, cfg, msg); | ||
| if (foundObject.numberOfObjects > 1) { | ||
| throw new Error(`Found more than 1 object for provided criteria: ${JSON.stringify(criteria)}`); | ||
| } | ||
| if (foundObject.numberOfObjects === 0) { | ||
| this.logger.trace('No objects for criteria: %j and type: %j, were found returning empty object', criteria, type); | ||
| this.logger.info('Finished processing deleteByUniqueCriteria action'); | ||
| return {}; | ||
| } | ||
| const { object } = foundObject; | ||
| this.logger.trace('Start deleting object: %j', object); | ||
| const id = await this.deleteObject(object, cfg, msg); | ||
| if (id === null) { | ||
| this.logger.trace('Object with unique criteria: %j and type: %j was not deleted or not found. Returning empty object', criteria, type); | ||
| this.logger.info('Finished processing deleteByUniqueCriteria action'); | ||
| return {}; | ||
| } | ||
| this.logger.trace('Successfully process delete call for criteria: %j and type: %j', criteria, type); | ||
| this.logger.info('Finished processing deleteByUniqueCriteria action'); | ||
| return { id }; | ||
| } catch (e) { | ||
| this.logger.error('Unexpected error while processing delete call for message: %j', msg, e); | ||
| throw e; | ||
| } | ||
| } | ||
| /** | ||
@@ -134,13 +132,13 @@ * Default implementation expects unique criteria to be present inside input message `uniqueCriteria` param. If you need other behaviour override this method. | ||
| // @ts-ignore | ||
| public getCriteria(msg: any, cfg: any): { | ||
| uniqueCriteria: any, | ||
| value: any | ||
| } { | ||
| const fieldName = cfg[uniqueCriteria]; | ||
| const value = msg[fieldName]; | ||
| return { | ||
| uniqueCriteria: fieldName, | ||
| value, | ||
| } | ||
| } | ||
| public getCriteria(msg: any, cfg: any): { | ||
| uniqueCriteria: any, | ||
| value: any, | ||
| } { | ||
| const fieldName = cfg[uniqueCriteria]; | ||
| const value = msg[fieldName]; | ||
| return { | ||
| value, | ||
| uniqueCriteria: fieldName, | ||
| }; | ||
| } | ||
@@ -155,7 +153,6 @@ /** | ||
| */ | ||
| public abstract async findObjectByCriteria(criteria: any, type: any, cfg: any, msg: any): Promise<{ | ||
| object: any, | ||
| numberOfObjects: number, | ||
| }>; | ||
| public abstract async findObjectByCriteria(criteria: any, type: any, cfg: any, msg: any): Promise<{ | ||
| object: any, | ||
| numberOfObjects: number, | ||
| }>; | ||
| } | ||
+1
-2
| { | ||
| "name": "@elastic.io/oih-standard-library", | ||
| "version": "1.0.0-rc4", | ||
| "version": "1.0.0-rc5", | ||
| "description": "Library for OIH standards implementation", | ||
@@ -22,3 +22,2 @@ "author": { | ||
| "tsc": "rm -fr out && tsc -p ./ --outDir lib/", | ||
| "pretest": "tslint -c tslint.json --project tsconfig.json lib/**/*.ts spec/**/*.ts --fix", | ||
| "preparepublish": "npm run tsc", | ||
@@ -25,0 +24,0 @@ "prepublishOnly": "tsc -p ./ --outDir lib/", |
+6
-13
@@ -24,7 +24,7 @@ [](https://circleci.com/gh/elasticio/oih-standard-library) | ||
| Note: | ||
| * If more than 1 object was found with same id, error would be thrown by this implementation | ||
| * Its your responsibility to ensure that deleteObject deletes only 1 object. This implementation assume that `id` is unique for `objectType`. | ||
| * If `deleteObject` method is returning `null` empty object would be emitted. You can indicate with `null` that object hasn`t been deleted or found. | ||
| 1. Create Action | ||
| 2. Create class that extends DeleteById class | ||
| 3. Override `findObjectById` and `deleteObject()` methods. Example below. | ||
| 3. Override `deleteObject()` methods. Example below. | ||
| 4. Optional override `getType` and `getId` methods. Default implementation expects `objectType` to be present in input configuration and `id` in input message. | ||
@@ -41,14 +41,7 @@ 5. Create instance of your class and pass `logger` to constructor. `const myDeleteByIDImpl = new MyDeleteByIdImpl(logger);` | ||
| async findObjectById(id, type, cfg, msg) { // In most cases you need just id, type and cfg | ||
| const object = await findObjectInAPI(id, type, cfg, msg); // objects that match this id | ||
| const numberOfObjects = object.count; // You do not need to check or throw error in this case, action implementation will do this | ||
| return { // return structure must contain object and numberOfObjects found | ||
| object, | ||
| numberOfObjects | ||
| } | ||
| async deleteObject(id, cfg, msg) { // In most cases you need just id, type and cfg | ||
| const deletedID = await deleteObjectInAPI(id, cfg, msg); // Delete object | ||
| return deletedID; // Return deleted object ID. If you return null, empty object would be emitted. | ||
| } | ||
| async deleteObject(object, cfg, msg) { // In most cases you need just object, type and cfg | ||
| const deletedID = await deleteObjectInAPI(object, cfg, msg); // Delete object | ||
| return deletedID; // Return deleted object ID if you return null, empty object would be emitted. | ||
| } | ||
| // You can also override getType and getId methods if needed | ||
@@ -55,0 +48,0 @@ } |
38827
-2.39%104
-6.31%