@thisisagile/easy
Version:
Straightforward library for building domain-driven microservice architectures
1 lines • 3.26 kB
Source Map (JSON)
{"version":3,"sources":["../src/services/RouteGateway.ts"],"sourcesContent":["import { Api, RouteOptions } from './Api';\nimport { ApiGateway } from './ApiGateway';\nimport { Func } from '../types/Func';\nimport { Uri } from '../types/Uri';\nimport { PageList } from '../types/PageList';\nimport { Json, JsonValue } from '../types/Json';\nimport { Id } from '../types/Id';\nimport { Optional } from '../types/Types';\nimport { List } from '../types/List';\nimport { toArray } from '../types/Array';\nimport { HttpStatus } from '../http/HttpStatus';\n\nexport class RouteGateway extends ApiGateway {\n constructor(\n readonly route: Func<Uri>,\n readonly routeId: Func<Uri>,\n readonly api: Api = new Api()\n ) {\n super(api);\n }\n\n all(options?: RouteOptions): Promise<PageList<Json>> {\n return this.get(this.route(), options);\n }\n\n byId(id: Id, options?: RouteOptions): Promise<Optional<Json>> {\n return this.getOne(this.routeId().id(id));\n }\n\n byIds(...ids: Id[]): Promise<List<Json>> {\n return this.get(this.route().ids(toArray(...ids)));\n }\n\n search(q: JsonValue, options?: RouteOptions): Promise<PageList<Json>> {\n return this.get(this.route().query(q), options);\n }\n\n exists(id: Id, options?: RouteOptions): Promise<boolean> {\n return this.get(this.routeId().id(id))\n .then(r => r.length === 1)\n .catch(r => (HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));\n }\n\n add(item: Json, options?: RouteOptions): Promise<Json> {\n return this.post(this.route(), item, options);\n }\n\n filter(options?: RouteOptions): Promise<PageList<Json>> {\n return this.postSearch(this.route(), options);\n }\n\n update(item: Json, options?: RouteOptions): Promise<Json> {\n return this.patch(this.routeId().id(item.id), item, options);\n }\n\n upsert(item: Json, options?: RouteOptions): Promise<Json> {\n return this.put(this.routeId().id(item.id), item, options);\n }\n\n remove(id: Id, options?: RouteOptions): Promise<boolean> {\n return this.delete(this.routeId().id(id), options);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAYO,IAAM,eAAN,cAA2B,WAAW;AAAA,EAC3C,YACW,OACA,SACA,MAAW,IAAI,IAAI,GAC5B;AACA,UAAM,GAAG;AAJA;AACA;AACA;AAAA,EAGX;AAAA,EAEA,IAAI,SAAiD;AACnD,WAAO,KAAK,IAAI,KAAK,MAAM,GAAG,OAAO;AAAA,EACvC;AAAA,EAEA,KAAK,IAAQ,SAAiD;AAC5D,WAAO,KAAK,OAAO,KAAK,QAAQ,EAAE,GAAG,EAAE,CAAC;AAAA,EAC1C;AAAA,EAEA,SAAS,KAAgC;AACvC,WAAO,KAAK,IAAI,KAAK,MAAM,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,CAAC;AAAA,EACnD;AAAA,EAEA,OAAO,GAAc,SAAiD;AACpE,WAAO,KAAK,IAAI,KAAK,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO;AAAA,EAChD;AAAA,EAEA,OAAO,IAAQ,SAA0C;AACvD,WAAO,KAAK,IAAI,KAAK,QAAQ,EAAE,GAAG,EAAE,CAAC,EAClC,KAAK,OAAK,EAAE,WAAW,CAAC,EACxB,MAAM,OAAM,WAAW,SAAS,OAAO,EAAE,MAAM,IAAI,QAAQ,QAAQ,OAAO,CAAC,CAAE;AAAA,EAClF;AAAA,EAEA,IAAI,MAAY,SAAuC;AACrD,WAAO,KAAK,KAAK,KAAK,MAAM,GAAG,MAAM,OAAO;AAAA,EAC9C;AAAA,EAEA,OAAO,SAAiD;AACtD,WAAO,KAAK,WAAW,KAAK,MAAM,GAAG,OAAO;AAAA,EAC9C;AAAA,EAEA,OAAO,MAAY,SAAuC;AACxD,WAAO,KAAK,MAAM,KAAK,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,OAAO;AAAA,EAC7D;AAAA,EAEA,OAAO,MAAY,SAAuC;AACxD,WAAO,KAAK,IAAI,KAAK,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,OAAO;AAAA,EAC3D;AAAA,EAEA,OAAO,IAAQ,SAA0C;AACvD,WAAO,KAAK,OAAO,KAAK,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO;AAAA,EACnD;AACF;","names":[]}