@thisisagile/easy 13.4.11 → 13.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"MappedRouteGateway.js","sourceRoot":"","sources":["../../src/services/MappedRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAE5B,oCAAkC;AAClC,iDAA8C;AAG9C,MAAa,kBAAmB,SAAQ,2BAAY;IAClD,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAM,IAAI,cAAM,EAAE,EAAW,MAAW,IAAI,SAAG,EAAE;QAC5H,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QADR,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAe;QAAW,QAAG,GAAH,GAAG,CAAiB;IAE9H,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAwB;QACpC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAwB;QACvC,OAAO,KAAK;aACT,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACjB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,IAAU;QACZ,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC;CACF;AAvBD,gDAuBC"}
1
+ {"version":3,"file":"MappedRouteGateway.js","sourceRoot":"","sources":["../../src/services/MappedRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAE1B,oCAAgC;AAChC,iDAA4C;AAG5C,MAAa,kBAAmB,SAAQ,2BAAY;IAChD,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAM,IAAI,cAAM,EAAE,EAAW,MAAW,IAAI,SAAG,EAAE;QAC1H,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QADV,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAe;QAAW,QAAG,GAAH,GAAG,CAAiB;IAE9H,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAwB;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAwB;QACrC,OAAO,KAAK;aACP,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACjB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,GAAG,CAAC,IAAU;QACV,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,IAAU;QACb,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC;CACJ;AAvBD,gDAuBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0C;AAE1C,kCAAqC;AACrC,6CAA0C;AAE1C,MAAa,YAAa,SAAQ,uBAAU;IAC1C,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAW,IAAI,SAAG,EAAE;QAC/F,KAAK,CAAC,GAAG,CAAC,CAAC;QADQ,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAiB;IAEjG,CAAC;IAED,GAAG,CAAC,OAAsB;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,CAAY,EAAE,OAAsB;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACnC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;aACzB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,GAAG,CAAC,IAAU,EAAE,OAAsB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,OAAsB;QAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;CACF;AA1CD,oCA0CC"}
1
+ {"version":3,"file":"RouteGateway.js","sourceRoot":"","sources":["../../src/services/RouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAAwC;AAExC,kCAAmC;AACnC,6CAAwC;AAExC,MAAa,YAAa,SAAQ,uBAAU;IACxC,YAAqB,KAAgB,EAAW,OAAkB,EAAW,MAAW,IAAI,SAAG,EAAE;QAC7F,KAAK,CAAC,GAAG,CAAC,CAAC;QADM,UAAK,GAAL,KAAK,CAAW;QAAW,YAAO,GAAP,OAAO,CAAW;QAAW,QAAG,GAAH,GAAG,CAAiB;IAEjG,CAAC;IAED,GAAG,CAAC,OAAsB;QACtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,CAAC,EAAM,EAAE,OAAsB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,CAAY,EAAE,OAAsB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;aACzB,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,GAAG,CAAC,IAAU,EAAE,OAAsB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,OAAsB;QACzB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,IAAU,EAAE,OAAsB;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,EAAM,EAAE,OAAsB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACJ;AA1CD,oCA0CC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewRouteGateway.js","sourceRoot":"","sources":["../../src/services/ViewRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA4B;AAE5B,oCAAgC;AAChC,iDAA8C;AAG9C,MAAa,gBAAiB,SAAQ,2BAAY;IAChD,YACW,KAAgB,EAChB,OAAkB,EAClB,QAAQ;QACf,EAAE,EAAE,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC,UAAU;QACvB,GAAG,EAAE,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC,UAAU;KACzB,EACQ,MAAW,IAAI,SAAG,EAAE;QAE7B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QARlB,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAW;QAClB,UAAK,GAAL,KAAK,CAGb;QACQ,QAAG,GAAH,GAAG,CAAiB;IAG/B,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAwB;QACpC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAwB;QACvC,OAAO,KAAK;aACT,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACjB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,GAAG,CAAC,IAAU;QACZ,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,IAAU;QACf,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;CACF;AA/BD,4CA+BC"}
1
+ {"version":3,"file":"ViewRouteGateway.js","sourceRoot":"","sources":["../../src/services/ViewRouteGateway.ts"],"names":[],"mappings":";;;AAAA,+BAA0B;AAE1B,oCAA8B;AAC9B,iDAA4C;AAG5C,MAAa,gBAAiB,SAAQ,2BAAY;IAC9C,YACa,KAAgB,EAChB,OAAkB,EAClB,QAAQ;QACb,EAAE,EAAE,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC,UAAU;QACvB,GAAG,EAAE,IAAA,YAAI,EAAC,EAAE,CAAC,CAAC,UAAU;KAC3B,EACQ,MAAW,IAAI,SAAG,EAAE;QAE7B,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QARlB,UAAK,GAAL,KAAK,CAAW;QAChB,YAAO,GAAP,OAAO,CAAW;QAClB,UAAK,GAAL,KAAK,CAGb;QACQ,QAAG,GAAH,GAAG,CAAiB;IAGjC,CAAC;IAED,GAAG,CAAC,GAAQ,EAAE,OAAwB;QAClC,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,GAAQ,EAAE,OAAwB;QACrC,OAAO,KAAK;aACP,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;aACjB,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,GAAG,CAAC,IAAU;QACV,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,IAAU;QACb,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;CACJ;AA/BD,4CA+BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "13.4.11",
3
+ "version": "13.4.12",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "access": "public"
32
32
  },
33
33
  "devDependencies": {
34
- "@thisisagile/easy-test": "13.4.11",
34
+ "@thisisagile/easy-test": "13.4.12",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^9.0.1",
37
37
  "@types/luxon": "3.2.0",
@@ -1,30 +1,30 @@
1
- import { Api } from './Api';
2
- import { Func, Json, List, Optional, Uri } from '../types';
3
- import { Mapper } from '../utils';
4
- import { RouteGateway } from './RouteGateway';
5
- import { RequestOptions } from '../http';
1
+ import {Api} from './Api';
2
+ import {Func, Json, List, Optional, Uri} from '../types';
3
+ import {Mapper} from '../utils';
4
+ import {RouteGateway} from './RouteGateway';
5
+ import {RequestOptions} from '../http';
6
6
 
7
7
  export class MappedRouteGateway extends RouteGateway {
8
- constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly map = new Mapper(), readonly api: Api = new Api()) {
9
- super(route, routeId, api);
10
- }
8
+ constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly map = new Mapper(), readonly api: Api = new Api()) {
9
+ super(route, routeId, api);
10
+ }
11
11
 
12
- get(uri: Uri, options?: RequestOptions): Promise<List<Json>> {
13
- return super.get(uri, options).then(is => is.map(i => this.map.in(i)));
14
- }
12
+ get(uri: Uri, options?: RequestOptions): Promise<List<Json>> {
13
+ return super.get(uri, options).then(is => is.map(i => this.map.in(i)));
14
+ }
15
15
 
16
- getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
17
- return super
18
- .get(uri, options)
19
- .then(is => is.first())
20
- .then(i => this.map.in(i));
21
- }
16
+ getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
17
+ return super
18
+ .get(uri, options)
19
+ .then(is => is.first())
20
+ .then(i => this.map.in(i));
21
+ }
22
22
 
23
- add(item: Json): Promise<Json> {
24
- return super.add(this.map.out(item));
25
- }
23
+ add(item: Json): Promise<Json> {
24
+ return super.add(this.map.out(item));
25
+ }
26
26
 
27
- update(item: Json): Promise<Json> {
28
- return super.update(this.map.out(item));
29
- }
27
+ update(item: Json): Promise<Json> {
28
+ return super.update(this.map.out(item));
29
+ }
30
30
  }
@@ -1,48 +1,48 @@
1
- import { Api, RouteOptions } from './Api';
2
- import { Func, Id, Json, JsonValue, Optional, PageList, Uri } from '../types';
3
- import { HttpStatus } from '../http';
4
- import { ApiGateway } from './ApiGateway';
1
+ import {Api, RouteOptions} from './Api';
2
+ import {Func, Id, Json, JsonValue, Optional, PageList, Uri} from '../types';
3
+ import {HttpStatus} from '../http';
4
+ import {ApiGateway} from './ApiGateway';
5
5
 
6
6
  export class RouteGateway extends ApiGateway {
7
- constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly api: Api = new Api()) {
8
- super(api);
9
- }
10
-
11
- all(options?: RouteOptions): Promise<PageList<Json>> {
12
- return this.get(this.route(), options);
13
- }
14
-
15
- byId(id: Id, options?: RouteOptions): Promise<Optional<Json>> {
16
- return this.getOne(this.routeId().id(id));
17
- }
18
-
19
- search(q: JsonValue, options?: RouteOptions): Promise<PageList<Json>> {
20
- return this.get(this.route().query(q), options);
21
- }
22
-
23
- exists(id: Id, options?: RouteOptions): Promise<boolean> {
24
- return this.get(this.routeId().id(id))
25
- .then(r => r.length === 1)
26
- .catch(r => (HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));
27
- }
28
-
29
- add(item: Json, options?: RouteOptions): Promise<Json> {
30
- return this.post(this.route(), item, options);
31
- }
32
-
33
- filter(options?: RouteOptions): Promise<PageList<Json>> {
34
- return this.postSearch(this.route(), options);
35
- }
36
-
37
- update(item: Json, options?: RouteOptions): Promise<Json> {
38
- return this.patch(this.routeId().id(item.id), item, options);
39
- }
40
-
41
- upsert(item: Json, options?: RouteOptions): Promise<Json> {
42
- return this.put(this.routeId().id(item.id), item, options);
43
- }
44
-
45
- remove(id: Id, options?: RouteOptions): Promise<boolean> {
46
- return this.delete(this.routeId().id(id), options);
47
- }
7
+ constructor(readonly route: Func<Uri>, readonly routeId: Func<Uri>, readonly api: Api = new Api()) {
8
+ super(api);
9
+ }
10
+
11
+ all(options?: RouteOptions): Promise<PageList<Json>> {
12
+ return this.get(this.route(), options);
13
+ }
14
+
15
+ byId(id: Id, options?: RouteOptions): Promise<Optional<Json>> {
16
+ return this.getOne(this.routeId().id(id));
17
+ }
18
+
19
+ search(q: JsonValue, options?: RouteOptions): Promise<PageList<Json>> {
20
+ return this.get(this.route().query(q), options);
21
+ }
22
+
23
+ exists(id: Id, options?: RouteOptions): Promise<boolean> {
24
+ return this.get(this.routeId().id(id))
25
+ .then(r => r.length === 1)
26
+ .catch(r => (HttpStatus.NotFound.equals(r.status) ? false : Promise.reject(r)));
27
+ }
28
+
29
+ add(item: Json, options?: RouteOptions): Promise<Json> {
30
+ return this.post(this.route(), item, options);
31
+ }
32
+
33
+ filter(options?: RouteOptions): Promise<PageList<Json>> {
34
+ return this.postSearch(this.route(), options);
35
+ }
36
+
37
+ update(item: Json, options?: RouteOptions): Promise<Json> {
38
+ return this.patch(this.routeId().id(item.id), item, options);
39
+ }
40
+
41
+ upsert(item: Json, options?: RouteOptions): Promise<Json> {
42
+ return this.put(this.routeId().id(item.id), item, options);
43
+ }
44
+
45
+ remove(id: Id, options?: RouteOptions): Promise<boolean> {
46
+ return this.delete(this.routeId().id(id), options);
47
+ }
48
48
  }
@@ -1,38 +1,38 @@
1
- import { Api } from './Api';
2
- import { Func, Json, List, Optional, Uri } from '../types';
3
- import { view } from '../utils';
4
- import { RouteGateway } from './RouteGateway';
5
- import { RequestOptions } from '../http';
1
+ import {Api} from './Api';
2
+ import {Func, Json, List, Optional, Uri} from '../types';
3
+ import {view} from '../utils';
4
+ import {RouteGateway} from './RouteGateway';
5
+ import {RequestOptions} from '../http';
6
6
 
7
7
  export class ViewRouteGateway extends RouteGateway {
8
- constructor(
9
- readonly route: Func<Uri>,
10
- readonly routeId: Func<Uri>,
11
- readonly views = {
12
- in: view({}).fromSource,
13
- out: view({}).fromSource,
14
- },
15
- readonly api: Api = new Api()
16
- ) {
17
- super(route, routeId, api);
18
- }
8
+ constructor(
9
+ readonly route: Func<Uri>,
10
+ readonly routeId: Func<Uri>,
11
+ readonly views = {
12
+ in: view({}).fromSource,
13
+ out: view({}).fromSource,
14
+ },
15
+ readonly api: Api = new Api()
16
+ ) {
17
+ super(route, routeId, api);
18
+ }
19
19
 
20
- get(uri: Uri, options?: RequestOptions): Promise<List<Json>> {
21
- return super.get(uri, options).then(is => is.map(i => this.views.in.from(i)));
22
- }
20
+ get(uri: Uri, options?: RequestOptions): Promise<List<Json>> {
21
+ return super.get(uri, options).then(is => is.map(i => this.views.in.from(i)));
22
+ }
23
23
 
24
- getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
25
- return super
26
- .get(uri, options)
27
- .then(is => is.first())
28
- .then(i => this.views.in.from(i));
29
- }
24
+ getOne(uri: Uri, options?: RequestOptions): Promise<Optional<Json>> {
25
+ return super
26
+ .get(uri, options)
27
+ .then(is => is.first())
28
+ .then(i => this.views.in.from(i));
29
+ }
30
30
 
31
- add(item: Json): Promise<Json> {
32
- return super.add(this.views.out.from(item));
33
- }
31
+ add(item: Json): Promise<Json> {
32
+ return super.add(this.views.out.from(item));
33
+ }
34
34
 
35
- update(item: Json): Promise<Json> {
36
- return super.update(this.views.out.from(item));
37
- }
35
+ update(item: Json): Promise<Json> {
36
+ return super.update(this.views.out.from(item));
37
+ }
38
38
  }