@spinajs/orm-api 2.0.102

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.
Files changed (126) hide show
  1. package/README.md +11 -0
  2. package/lib/cjs/PlainJsonCollectionTransformer.d.ts +9 -0
  3. package/lib/cjs/PlainJsonCollectionTransformer.d.ts.map +1 -0
  4. package/lib/cjs/PlainJsonCollectionTransformer.js +30 -0
  5. package/lib/cjs/PlainJsonCollectionTransformer.js.map +1 -0
  6. package/lib/cjs/config/orm-http.d.ts +17 -0
  7. package/lib/cjs/config/orm-http.d.ts.map +1 -0
  8. package/lib/cjs/config/orm-http.js +23 -0
  9. package/lib/cjs/config/orm-http.js.map +1 -0
  10. package/lib/cjs/controllers/Collections.d.ts +33 -0
  11. package/lib/cjs/controllers/Collections.d.ts.map +1 -0
  12. package/lib/cjs/controllers/Collections.js +415 -0
  13. package/lib/cjs/controllers/Collections.js.map +1 -0
  14. package/lib/cjs/controllers/JsonApi.d.ts +1 -0
  15. package/lib/cjs/controllers/JsonApi.d.ts.map +1 -0
  16. package/lib/cjs/controllers/JsonApi.js +245 -0
  17. package/lib/cjs/controllers/JsonApi.js.map +1 -0
  18. package/lib/cjs/dto/QueryArgs.d.ts +9 -0
  19. package/lib/cjs/dto/QueryArgs.d.ts.map +1 -0
  20. package/lib/cjs/dto/QueryArgs.js +28 -0
  21. package/lib/cjs/dto/QueryArgs.js.map +1 -0
  22. package/lib/cjs/dto/QueryFilter.d.ts +5 -0
  23. package/lib/cjs/dto/QueryFilter.d.ts.map +1 -0
  24. package/lib/cjs/dto/QueryFilter.js +25 -0
  25. package/lib/cjs/dto/QueryFilter.js.map +1 -0
  26. package/lib/cjs/dto/QueryIncludes.d.ts +5 -0
  27. package/lib/cjs/dto/QueryIncludes.d.ts.map +1 -0
  28. package/lib/cjs/dto/QueryIncludes.js +25 -0
  29. package/lib/cjs/dto/QueryIncludes.js.map +1 -0
  30. package/lib/cjs/hydrators/QueryFilterHydrator.d.ts +5 -0
  31. package/lib/cjs/hydrators/QueryFilterHydrator.d.ts.map +1 -0
  32. package/lib/cjs/hydrators/QueryFilterHydrator.js +15 -0
  33. package/lib/cjs/hydrators/QueryFilterHydrator.js.map +1 -0
  34. package/lib/cjs/hydrators/QueryIncludesHydrator.d.ts +5 -0
  35. package/lib/cjs/hydrators/QueryIncludesHydrator.d.ts.map +1 -0
  36. package/lib/cjs/hydrators/QueryIncludesHydrator.js +21 -0
  37. package/lib/cjs/hydrators/QueryIncludesHydrator.js.map +1 -0
  38. package/lib/cjs/index.d.ts +29 -0
  39. package/lib/cjs/index.d.ts.map +1 -0
  40. package/lib/cjs/index.js +101 -0
  41. package/lib/cjs/index.js.map +1 -0
  42. package/lib/cjs/interfaces.d.ts +27 -0
  43. package/lib/cjs/interfaces.d.ts.map +1 -0
  44. package/lib/cjs/interfaces.js +32 -0
  45. package/lib/cjs/interfaces.js.map +1 -0
  46. package/lib/cjs/middleware.d.ts +22 -0
  47. package/lib/cjs/middleware.d.ts.map +1 -0
  48. package/lib/cjs/middleware.js +31 -0
  49. package/lib/cjs/middleware.js.map +1 -0
  50. package/lib/cjs/package.json +1 -0
  51. package/lib/cjs/policies/FindModelType.d.ts +8 -0
  52. package/lib/cjs/policies/FindModelType.d.ts.map +1 -0
  53. package/lib/cjs/policies/FindModelType.js +43 -0
  54. package/lib/cjs/policies/FindModelType.js.map +1 -0
  55. package/lib/cjs/route-args/ModelType.d.ts +13 -0
  56. package/lib/cjs/route-args/ModelType.d.ts.map +1 -0
  57. package/lib/cjs/route-args/ModelType.js +39 -0
  58. package/lib/cjs/route-args/ModelType.js.map +1 -0
  59. package/lib/cjs/schemas/QueryArgs.schema.d.ts +20 -0
  60. package/lib/cjs/schemas/QueryArgs.schema.d.ts.map +1 -0
  61. package/lib/cjs/schemas/QueryArgs.schema.js +13 -0
  62. package/lib/cjs/schemas/QueryArgs.schema.js.map +1 -0
  63. package/lib/mjs/PlainJsonCollectionTransformer.d.ts +9 -0
  64. package/lib/mjs/PlainJsonCollectionTransformer.d.ts.map +1 -0
  65. package/lib/mjs/PlainJsonCollectionTransformer.js +27 -0
  66. package/lib/mjs/PlainJsonCollectionTransformer.js.map +1 -0
  67. package/lib/mjs/config/orm-http.d.ts +17 -0
  68. package/lib/mjs/config/orm-http.d.ts.map +1 -0
  69. package/lib/mjs/config/orm-http.js +21 -0
  70. package/lib/mjs/config/orm-http.js.map +1 -0
  71. package/lib/mjs/controllers/Collections.d.ts +33 -0
  72. package/lib/mjs/controllers/Collections.d.ts.map +1 -0
  73. package/lib/mjs/controllers/Collections.js +412 -0
  74. package/lib/mjs/controllers/Collections.js.map +1 -0
  75. package/lib/mjs/controllers/JsonApi.d.ts +2 -0
  76. package/lib/mjs/controllers/JsonApi.d.ts.map +1 -0
  77. package/lib/mjs/controllers/JsonApi.js +246 -0
  78. package/lib/mjs/controllers/JsonApi.js.map +1 -0
  79. package/lib/mjs/dto/QueryArgs.d.ts +9 -0
  80. package/lib/mjs/dto/QueryArgs.d.ts.map +1 -0
  81. package/lib/mjs/dto/QueryArgs.js +22 -0
  82. package/lib/mjs/dto/QueryArgs.js.map +1 -0
  83. package/lib/mjs/dto/QueryFilter.d.ts +5 -0
  84. package/lib/mjs/dto/QueryFilter.d.ts.map +1 -0
  85. package/lib/mjs/dto/QueryFilter.js +22 -0
  86. package/lib/mjs/dto/QueryFilter.js.map +1 -0
  87. package/lib/mjs/dto/QueryIncludes.d.ts +5 -0
  88. package/lib/mjs/dto/QueryIncludes.d.ts.map +1 -0
  89. package/lib/mjs/dto/QueryIncludes.js +22 -0
  90. package/lib/mjs/dto/QueryIncludes.js.map +1 -0
  91. package/lib/mjs/hydrators/QueryFilterHydrator.d.ts +5 -0
  92. package/lib/mjs/hydrators/QueryFilterHydrator.d.ts.map +1 -0
  93. package/lib/mjs/hydrators/QueryFilterHydrator.js +11 -0
  94. package/lib/mjs/hydrators/QueryFilterHydrator.js.map +1 -0
  95. package/lib/mjs/hydrators/QueryIncludesHydrator.d.ts +5 -0
  96. package/lib/mjs/hydrators/QueryIncludesHydrator.d.ts.map +1 -0
  97. package/lib/mjs/hydrators/QueryIncludesHydrator.js +14 -0
  98. package/lib/mjs/hydrators/QueryIncludesHydrator.js.map +1 -0
  99. package/lib/mjs/index.d.ts +29 -0
  100. package/lib/mjs/index.d.ts.map +1 -0
  101. package/lib/mjs/index.js +95 -0
  102. package/lib/mjs/index.js.map +1 -0
  103. package/lib/mjs/interfaces.d.ts +27 -0
  104. package/lib/mjs/interfaces.d.ts.map +1 -0
  105. package/lib/mjs/interfaces.js +28 -0
  106. package/lib/mjs/interfaces.js.map +1 -0
  107. package/lib/mjs/middleware.d.ts +22 -0
  108. package/lib/mjs/middleware.d.ts.map +1 -0
  109. package/lib/mjs/middleware.js +27 -0
  110. package/lib/mjs/middleware.js.map +1 -0
  111. package/lib/mjs/package.json +1 -0
  112. package/lib/mjs/policies/FindModelType.d.ts +8 -0
  113. package/lib/mjs/policies/FindModelType.d.ts.map +1 -0
  114. package/lib/mjs/policies/FindModelType.js +40 -0
  115. package/lib/mjs/policies/FindModelType.js.map +1 -0
  116. package/lib/mjs/route-args/ModelType.d.ts +13 -0
  117. package/lib/mjs/route-args/ModelType.d.ts.map +1 -0
  118. package/lib/mjs/route-args/ModelType.js +35 -0
  119. package/lib/mjs/route-args/ModelType.js.map +1 -0
  120. package/lib/mjs/schemas/QueryArgs.schema.d.ts +20 -0
  121. package/lib/mjs/schemas/QueryArgs.schema.d.ts.map +1 -0
  122. package/lib/mjs/schemas/QueryArgs.schema.js +11 -0
  123. package/lib/mjs/schemas/QueryArgs.schema.js.map +1 -0
  124. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  125. package/lib/tsconfig.mjs.tsbuildinfo +1 -0
  126. package/package.json +68 -0
package/README.md ADDED
@@ -0,0 +1,11 @@
1
+ # `orm-http`
2
+
3
+ > TODO: description
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ const ormHttp = require('orm-http');
9
+
10
+ // TODO: DEMONSTRATE API
11
+ ```
@@ -0,0 +1,9 @@
1
+ import { ModelBase } from "@spinajs/orm";
2
+ import { CollectionApiTransformer, ITransformOptions } from "./interfaces.js";
3
+ /**
4
+ * Plain json collection transformer, used by default.
5
+ */
6
+ export declare class PlainJsonCollectionTransformer extends CollectionApiTransformer {
7
+ transform(data: ModelBase<unknown> | ModelBase<unknown>[], options?: ITransformOptions): unknown;
8
+ }
9
+ //# sourceMappingURL=PlainJsonCollectionTransformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlainJsonCollectionTransformer.d.ts","sourceRoot":"","sources":["../../src/PlainJsonCollectionTransformer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE9E;;GAEG;AACH,qBACa,8BAA+B,SAAQ,wBAAwB;IACjE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO;CAY1G"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PlainJsonCollectionTransformer = void 0;
10
+ const di_1 = require("@spinajs/di");
11
+ const interfaces_js_1 = require("./interfaces.js");
12
+ /**
13
+ * Plain json collection transformer, used by default.
14
+ */
15
+ let PlainJsonCollectionTransformer = class PlainJsonCollectionTransformer extends interfaces_js_1.CollectionApiTransformer {
16
+ transform(data, options) {
17
+ if (Array.isArray(data)) {
18
+ return {
19
+ Collection: data.map(x => x.toJSON()),
20
+ Count: options.totalCount,
21
+ };
22
+ }
23
+ return data.toJSON();
24
+ }
25
+ };
26
+ PlainJsonCollectionTransformer = __decorate([
27
+ (0, di_1.Injectable)(interfaces_js_1.CollectionApiTransformer)
28
+ ], PlainJsonCollectionTransformer);
29
+ exports.PlainJsonCollectionTransformer = PlainJsonCollectionTransformer;
30
+ //# sourceMappingURL=PlainJsonCollectionTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlainJsonCollectionTransformer.js","sourceRoot":"","sources":["../../src/PlainJsonCollectionTransformer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oCAAyC;AAEzC,mDAA8E;AAE9E;;GAEG;AAEI,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,wCAAwB;IACjE,SAAS,CAAC,IAA+C,EAAE,OAA2B;QAEzF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO;gBACH,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;gBACrC,KAAK,EAAE,OAAO,CAAC,UAAU;aAC5B,CAAA;SACJ;QAED,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IAEzB,CAAC;CACJ,CAAA;AAbY,8BAA8B;IAD1C,IAAA,eAAU,EAAC,wCAAwB,CAAC;GACxB,8BAA8B,CAa1C;AAbY,wEAA8B"}
@@ -0,0 +1,17 @@
1
+ declare const ormHttp: {
2
+ system: {
3
+ dirs: {
4
+ controllers: string[];
5
+ schemas: string[];
6
+ };
7
+ };
8
+ api: {
9
+ endpoint: {
10
+ transformer: {
11
+ service: string;
12
+ };
13
+ };
14
+ };
15
+ };
16
+ export default ormHttp;
17
+ //# sourceMappingURL=orm-http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm-http.d.ts","sourceRoot":"","sources":["../../../src/config/orm-http.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,OAAO;;;;;;;;;;;;;;CAeZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ function dir(path) {
5
+ return (0, path_1.resolve)((0, path_1.normalize)((0, path_1.join)(process.cwd(), path)));
6
+ }
7
+ const ormHttp = {
8
+ system: {
9
+ dirs: {
10
+ controllers: [dir('./../controllers')],
11
+ schemas: [dir('./../schemas')],
12
+ },
13
+ },
14
+ api: {
15
+ endpoint: {
16
+ transformer: {
17
+ service: 'JsonApiCollectionTransofrmer',
18
+ }
19
+ }
20
+ }
21
+ };
22
+ exports.default = ormHttp;
23
+ //# sourceMappingURL=orm-http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orm-http.js","sourceRoot":"","sources":["../../../src/config/orm-http.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,OAAO,GAAG;IACd,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YACtC,OAAO,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SAC/B;KACF;IAED,GAAG,EAAE;QACH,QAAQ,EAAE;YACR,WAAW,EAAE;gBACX,OAAO,EAAE,8BAA8B;aACxC;SACF;KACF;CACF,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { IModelDescriptor, IModelStatic, IOrmRelation, ModelBase, Orm, SelectQueryBuilder } from '@spinajs/orm';
2
+ import { BaseController, Ok } from '@spinajs/http';
3
+ import { QueryArgs } from '../dto/QueryArgs.js';
4
+ import { QueryFilter } from '../dto/QueryFilter.js';
5
+ import { Log } from '@spinajs/log';
6
+ import { QueryIncludes } from '../dto/QueryIncludes.js';
7
+ import { CollectionApiTransformer } from './../interfaces.js';
8
+ export declare class Collections extends BaseController {
9
+ protected Log: Log;
10
+ protected DataTransformer: CollectionApiTransformer;
11
+ protected Orm: Orm;
12
+ batchDelete(model: IModelStatic, ids: any[]): Promise<Ok>;
13
+ del(model: IModelStatic, id: any): Promise<Ok>;
14
+ deleteRelationBatch(model: IModelStatic, id: any, relation: string, relationIds: any[]): Promise<Ok>;
15
+ deleteRelation(model: IModelStatic, id: any, relation: string, relationId: number): Promise<Ok>;
16
+ deleteRelationAll(model: IModelStatic, id: any, relation: string): Promise<Ok>;
17
+ getAll(model: IModelStatic, getParams: QueryArgs, filters: QueryFilter, includes: QueryIncludes): Promise<Ok>;
18
+ get(model: IModelStatic, id: number, includes: QueryIncludes): Promise<Ok>;
19
+ getRelation(model: IModelStatic, id: any, relation: string, relationId: any, includes: QueryIncludes): Promise<Ok>;
20
+ getRelations(model: IModelStatic, id: any, relation: string, params: QueryArgs, filters: QueryFilter, includes: QueryIncludes): Promise<Ok>;
21
+ save(model: IModelStatic, data: unknown): Promise<Ok>;
22
+ insertRelation(model: IModelStatic, id: any, relation: string, data: unknown): Promise<Ok>;
23
+ update(model: IModelStatic, id: number, data: unknown): Promise<Ok>;
24
+ updateRelation(model: IModelStatic, id: number, relation: string, relationId: any, data: unknown): Promise<Ok>;
25
+ protected getModelDescriptor(model: IModelStatic): IModelDescriptor;
26
+ protected getRelationDescriptor(model: IModelStatic, relation: string): import("@spinajs/orm").IRelationDescriptor;
27
+ protected prepareQuery(model: IModelStatic, relation: string, id: any, callback: (this: SelectQueryBuilder<SelectQueryBuilder<any>>, relation: IOrmRelation) => void): {
28
+ relation: import("@spinajs/orm").IRelationDescriptor;
29
+ relationModel: IModelDescriptor;
30
+ query: import("@spinajs/orm").ISelectQueryBuilder<ModelBase<unknown>[]>;
31
+ };
32
+ }
33
+ //# sourceMappingURL=Collections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collections.d.ts","sourceRoot":"","sources":["../../../src/controllers/Collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAA6B,GAAG,EAA8B,kBAAkB,EAAa,MAAM,cAAc,CAAC;AAClL,OAAO,EAAE,cAAc,EAAiB,EAAE,EAA8E,MAAM,eAAe,CAAC;AAQ9I,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,qBAGa,WAAY,SAAQ,cAAc;IAE7C,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,eAAe,EAAE,wBAAwB,CAAC;IAGpD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAKN,WAAW,CAAc,KAAK,EAAE,YAAY,EAAU,GAAG,EAAE,GAAG,EAAE;IAahE,GAAG,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG;IAatD,mBAAmB,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAU,WAAW,EAAE,GAAG,EAAE;IAwB7H,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,MAAM;IAyBzH,iBAAiB,CAAc,KAAK,EAAE,YAAY,EAAiC,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM;IAyBrH,MAAM,CAAc,KAAK,EAAE,YAAY,EAAW,SAAS,EAAE,SAAS,EAAW,OAAO,EAAE,WAAW,EAAW,QAAQ,EAAE,aAAa;IAmBvI,GAAG,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,MAAM,EAAW,QAAQ,EAAE,aAAa;IAmB3F,WAAW,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,GAAG,EAAW,QAAQ,EAAE,aAAa;IA8BrJ,YAAY,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAW,MAAM,EAAE,SAAS,EAAW,OAAO,EAAE,WAAW,EAAW,QAAQ,EAAE,aAAa;IAgCvL,IAAI,CAAc,KAAK,EAAE,YAAY,EAAe,IAAI,EAAE,OAAO;IAQjE,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,EAAe,IAAI,EAAE,OAAO;IA0BxH,MAAM,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,MAAM,EAAe,IAAI,EAAE,OAAO;IAmBxF,cAAc,CAAc,KAAK,EAAE,YAAY,EAAW,EAAE,EAAE,MAAM,EAAW,QAAQ,EAAE,MAAM,EAAW,UAAU,EAAE,GAAG,EAAe,IAAI,EAAE,OAAO;IA4BlK,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,gBAAgB;IAUnE,SAAS,CAAC,qBAAqB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM;IAiBrE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,KAAK,IAAI;;;;;CAYrK"}
@@ -0,0 +1,415 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Collections = void 0;
16
+ const orm_1 = require("@spinajs/orm");
17
+ const http_1 = require("@spinajs/http");
18
+ const rbac_http_1 = require("@spinajs/rbac-http");
19
+ const di_1 = require("@spinajs/di");
20
+ const exceptions_1 = require("@spinajs/exceptions");
21
+ const ModelType_js_1 = require("../route-args/ModelType.js");
22
+ const FindModelType_js_1 = require("../policies/FindModelType.js");
23
+ const QueryArgs_js_1 = require("../dto/QueryArgs.js");
24
+ const QueryFilter_js_1 = require("../dto/QueryFilter.js");
25
+ const configuration_1 = require("@spinajs/configuration");
26
+ const log_1 = require("@spinajs/log");
27
+ const QueryIncludes_js_1 = require("../dto/QueryIncludes.js");
28
+ const interfaces_js_1 = require("./../interfaces.js");
29
+ let Collections = class Collections extends http_1.BaseController {
30
+ // --------------------- DELETE functions --------------------- //
31
+ async batchDelete(model, ids) {
32
+ const tModel = this.getModelDescriptor(model);
33
+ const result = await model.destroy().whereIn(tModel.PrimaryKey, ids);
34
+ this.Log.trace(`Deleted ${result.RowsAffected} records from ${tModel.Name}`);
35
+ return new http_1.Ok({
36
+ [tModel.PrimaryKey]: ids,
37
+ });
38
+ }
39
+ async del(model, id) {
40
+ const descriptor = this.getModelDescriptor(model);
41
+ const result = await model.destroy(id);
42
+ this.Log.trace(`Deleted ${result.RowsAffected} records from ${descriptor.Name} with id ${id}`);
43
+ return new http_1.Ok({
44
+ [descriptor.PrimaryKey]: [id],
45
+ });
46
+ }
47
+ async deleteRelationBatch(model, id, relation, relationIds) {
48
+ const descriptor = this.getRelationDescriptor(model, relation);
49
+ if (descriptor.Type === orm_1.RelationType.One) {
50
+ throw new exceptions_1.BadRequest('Cannot delete batch from one to one relation');
51
+ }
52
+ const exists = await model.exists(id);
53
+ if (!exists) {
54
+ throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
55
+ Resource: model.name,
56
+ Id: id,
57
+ });
58
+ }
59
+ const result = await descriptor.TargetModel.destroy(relationIds).where(descriptor.ForeignKey, id);
60
+ this.Log.trace(`Deleted ${result.RowsAffected} records from ${descriptor.Name} with id ${id}`);
61
+ return new http_1.Ok(relationIds);
62
+ }
63
+ async deleteRelation(model, id, relation, relationId) {
64
+ const descriptor = this.getRelationDescriptor(model, relation);
65
+ const tModel = this.getModelDescriptor(descriptor.TargetModel);
66
+ const exists = await model.exists(id);
67
+ if (!exists) {
68
+ throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
69
+ Resource: model.name,
70
+ Id: id,
71
+ });
72
+ }
73
+ const result = await descriptor.TargetModel.destroy(relationId).when(descriptor.Type !== orm_1.RelationType.One, function () {
74
+ this.where({ [descriptor.ForeignKey]: id });
75
+ });
76
+ this.Log.trace(`Deleted related ${result.RowsAffected} records from ${tModel.Name} with id ${id}`);
77
+ return new http_1.Ok({
78
+ [tModel.PrimaryKey]: relationId,
79
+ });
80
+ }
81
+ async deleteRelationAll(model, id, relation) {
82
+ const descriptor = this.getRelationDescriptor(model, relation);
83
+ const tModel = this.getModelDescriptor(descriptor.TargetModel);
84
+ const exists = await model.exists(id);
85
+ if (!exists) {
86
+ throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
87
+ Resource: model.name,
88
+ Id: id,
89
+ });
90
+ }
91
+ const result = await descriptor.TargetModel.destroy().when(descriptor.Type !== orm_1.RelationType.One, function () {
92
+ this.where(descriptor.ForeignKey, id);
93
+ });
94
+ this.Log.trace(`Deleted related ${result.RowsAffected} records from ${tModel.Name} with id ${id}`);
95
+ return new http_1.Ok();
96
+ }
97
+ // --------------------- GET functions --------------------- //
98
+ async getAll(model, getParams, filters, includes) {
99
+ const query = model
100
+ .where(filters)
101
+ .select('*')
102
+ .populate(includes)
103
+ .order(getParams.order, getParams.orderDirection ?? orm_1.SortOrder.ASC)
104
+ .skip(getParams.page * getParams.perPage ?? 0)
105
+ .take(getParams.perPage ?? 10);
106
+ const count = await query.clone().clearColumns().count('*', 'count').takeFirst().asRaw();
107
+ const result = await query;
108
+ return new http_1.Ok({
109
+ Data: result.map((x) => x.dehydrateWithRelations()),
110
+ Total: count.count,
111
+ });
112
+ }
113
+ async get(model, id, includes) {
114
+ const descriptor = this.getModelDescriptor(model);
115
+ const result = await model
116
+ .query()
117
+ .select('*')
118
+ .where(descriptor.PrimaryKey, id)
119
+ .populate(includes)
120
+ .firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
121
+ Resource: model.name,
122
+ [descriptor.PrimaryKey]: id,
123
+ }));
124
+ return new http_1.Ok(result.dehydrateWithRelations());
125
+ }
126
+ async getRelation(model, id, relation, relationId, includes) {
127
+ const mDescriptor = this.getModelDescriptor(model);
128
+ const rDescriptor = this.getRelationDescriptor(model, relation);
129
+ const rmDescriptor = this.getModelDescriptor(rDescriptor.TargetModel);
130
+ const query = rDescriptor.TargetModel.query();
131
+ const pExists = await model.exists(id);
132
+ if (!pExists) {
133
+ throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
134
+ Resource: model.name,
135
+ [mDescriptor.PrimaryKey]: id,
136
+ });
137
+ }
138
+ const result = await query
139
+ .select('*')
140
+ .populate(includes)
141
+ .where(rmDescriptor.PrimaryKey, relationId)
142
+ .firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${relationId} not found`, {
143
+ Resource: rDescriptor.TargetModel.name,
144
+ [rmDescriptor.PrimaryKey]: relationId,
145
+ }));
146
+ return new http_1.Ok(result.dehydrateWithRelations());
147
+ }
148
+ async getRelations(model, id, relation, params, filters, includes) {
149
+ const mDescriptor = this.getModelDescriptor(model);
150
+ const rDescriptor = this.getRelationDescriptor(model, relation);
151
+ const pExists = await model.exists(id);
152
+ if (!pExists) {
153
+ throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
154
+ Resource: model.name,
155
+ [mDescriptor.PrimaryKey]: id,
156
+ });
157
+ }
158
+ const query = rDescriptor.TargetModel.where(filters)
159
+ .where(rDescriptor.ForeignKey, id)
160
+ .select('*')
161
+ .populate(includes)
162
+ .order(params.order, params.orderDirection ?? orm_1.SortOrder.ASC)
163
+ .skip(params.page * params.perPage ?? 0)
164
+ .take(params.perPage ?? 10);
165
+ const count = await query.clone().clearColumns().count('*', 'count').takeFirst().asRaw();
166
+ const result = await query;
167
+ return new http_1.Ok({
168
+ Data: result.map((x) => x.dehydrateWithRelations()),
169
+ Total: count,
170
+ });
171
+ }
172
+ // --------------------- POST functions --------------------- //
173
+ async save(model, data) {
174
+ const toInsert = (Array.isArray(data) ? data : [data]).map((x) => new model(x));
175
+ await model.insert(toInsert);
176
+ return new http_1.Ok(toInsert.map((x) => x.dehydrate()));
177
+ }
178
+ async insertRelation(model, id, relation, data) {
179
+ const mDescriptor = this.getModelDescriptor(model);
180
+ const rDescriptor = this.getRelationDescriptor(model, relation);
181
+ const m = await model.get(id);
182
+ if (!m) {
183
+ throw new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
184
+ Resource: model.name,
185
+ [mDescriptor.PrimaryKey]: id,
186
+ });
187
+ }
188
+ const toInsert = (Array.isArray(data) ? data : [data]).map((x) => new rDescriptor.TargetModel(x));
189
+ toInsert.forEach((x) => {
190
+ m.attach(x);
191
+ });
192
+ await rDescriptor.TargetModel.insert(toInsert);
193
+ return new http_1.Ok(toInsert.map((x) => x.dehydrate()));
194
+ }
195
+ // --------------------- PUT functions --------------------- //
196
+ async update(model, id, data) {
197
+ const descriptor = this.getModelDescriptor(model);
198
+ const entity = await model.where(descriptor.PrimaryKey, id).firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
199
+ Resource: model.name,
200
+ [descriptor.PrimaryKey]: id,
201
+ }));
202
+ entity.hydrate(data);
203
+ await entity.update();
204
+ this.Log.trace('Updated entity with id ${id}');
205
+ return new http_1.Ok(entity.toJSON());
206
+ }
207
+ async updateRelation(model, id, relation, relationId, data) {
208
+ const dModel = this.getModelDescriptor(model);
209
+ const dRelation = this.getRelationDescriptor(model, relation);
210
+ const dTargetModel = this.getModelDescriptor(dRelation.TargetModel);
211
+ const entity = await model
212
+ .where(id)
213
+ .populate(relation, function () {
214
+ this.where(dTargetModel.PrimaryKey, relationId);
215
+ })
216
+ .firstOrThrow(new exceptions_1.ResourceNotFound(`Record with id ${id} not found`, {
217
+ Resource: model.name,
218
+ [dModel.PrimaryKey]: id,
219
+ }));
220
+ const rEntity = dRelation.Type === orm_1.RelationType.One ? entity[relation].Value : entity[relation][0];
221
+ this.Log.trace(`Updating relation ${relation} with id ${relationId} for model ${model.name} with id ${id}`);
222
+ rEntity.hydrate(data);
223
+ await rEntity.update();
224
+ return new http_1.Ok(rEntity.toJSON());
225
+ }
226
+ // --------------------- HELPERS functions --------------------- //
227
+ getModelDescriptor(model) {
228
+ const descriptor = model[orm_1.MODEL_DESCTRIPTION_SYMBOL];
229
+ if (!descriptor) {
230
+ throw new orm_1.OrmException(`Model ${model.name} has no descriptor`);
231
+ }
232
+ return descriptor;
233
+ }
234
+ getRelationDescriptor(model, relation) {
235
+ const descriptor = this.getModelDescriptor(model);
236
+ let rDescriptor = null;
237
+ for (const [key, value] of descriptor.Relations) {
238
+ if (key.toLowerCase() === relation.toLowerCase().trim()) {
239
+ rDescriptor = value;
240
+ break;
241
+ }
242
+ }
243
+ if (!rDescriptor) {
244
+ throw new orm_1.OrmException(`Model ${model.name} has no relation ${relation}`);
245
+ }
246
+ return rDescriptor;
247
+ }
248
+ prepareQuery(model, relation, id, callback) {
249
+ const descriptor = this.getModelDescriptor(model);
250
+ const rDescriptor = this.getRelationDescriptor(model, relation);
251
+ const tDescriptor = this.getModelDescriptor(rDescriptor.TargetModel);
252
+ const sQuery = model.query().where(descriptor.PrimaryKey, id).populate(relation, callback);
253
+ return {
254
+ relation: rDescriptor,
255
+ relationModel: tDescriptor,
256
+ query: sQuery,
257
+ };
258
+ }
259
+ };
260
+ __decorate([
261
+ (0, log_1.Logger)('orm-http:api'),
262
+ __metadata("design:type", log_1.Log)
263
+ ], Collections.prototype, "Log", void 0);
264
+ __decorate([
265
+ (0, configuration_1.AutoinjectService)('api.endpoint.transformer'),
266
+ __metadata("design:type", interfaces_js_1.CollectionApiTransformer)
267
+ ], Collections.prototype, "DataTransformer", void 0);
268
+ __decorate([
269
+ (0, di_1.Autoinject)(),
270
+ __metadata("design:type", orm_1.Orm)
271
+ ], Collections.prototype, "Orm", void 0);
272
+ __decorate([
273
+ (0, http_1.Post)(':model/__batchDelete'),
274
+ __param(0, (0, ModelType_js_1.ModelType)()),
275
+ __param(1, (0, http_1.Body)()),
276
+ __metadata("design:type", Function),
277
+ __metadata("design:paramtypes", [Object, Array]),
278
+ __metadata("design:returntype", Promise)
279
+ ], Collections.prototype, "batchDelete", null);
280
+ __decorate([
281
+ (0, http_1.Del)(':model/:id'),
282
+ (0, rbac_http_1.Permission)('deleteAny'),
283
+ __param(0, (0, ModelType_js_1.ModelType)()),
284
+ __param(1, (0, http_1.Param)()),
285
+ __metadata("design:type", Function),
286
+ __metadata("design:paramtypes", [Object, Object]),
287
+ __metadata("design:returntype", Promise)
288
+ ], Collections.prototype, "del", null);
289
+ __decorate([
290
+ (0, http_1.Post)(':model/:id/:relation/__batchDelete'),
291
+ (0, rbac_http_1.Permission)('deleteAny'),
292
+ __param(0, (0, ModelType_js_1.ModelType)()),
293
+ __param(1, (0, http_1.Param)()),
294
+ __param(2, (0, http_1.Param)()),
295
+ __param(3, (0, http_1.Body)()),
296
+ __metadata("design:type", Function),
297
+ __metadata("design:paramtypes", [Object, Object, String, Array]),
298
+ __metadata("design:returntype", Promise)
299
+ ], Collections.prototype, "deleteRelationBatch", null);
300
+ __decorate([
301
+ (0, http_1.Del)(':model/:id/:relation/:relationId'),
302
+ (0, rbac_http_1.Permission)('deleteAny'),
303
+ __param(0, (0, ModelType_js_1.ModelType)()),
304
+ __param(1, (0, http_1.Param)()),
305
+ __param(2, (0, http_1.Param)()),
306
+ __param(3, (0, http_1.Param)()),
307
+ __metadata("design:type", Function),
308
+ __metadata("design:paramtypes", [Object, Object, String, Number]),
309
+ __metadata("design:returntype", Promise)
310
+ ], Collections.prototype, "deleteRelation", null);
311
+ __decorate([
312
+ (0, http_1.Del)(':model/:id/:relation'),
313
+ (0, rbac_http_1.Permission)('deleteAny'),
314
+ __param(0, (0, ModelType_js_1.ModelType)()),
315
+ __param(1, (0, http_1.PKey)(http_1.ParameterType.FromQuery)),
316
+ __param(2, (0, http_1.Query)()),
317
+ __metadata("design:type", Function),
318
+ __metadata("design:paramtypes", [Object, Object, String]),
319
+ __metadata("design:returntype", Promise)
320
+ ], Collections.prototype, "deleteRelationAll", null);
321
+ __decorate([
322
+ (0, http_1.Get)(':model'),
323
+ (0, rbac_http_1.Permission)('readAny'),
324
+ __param(0, (0, ModelType_js_1.ModelType)()),
325
+ __param(1, (0, http_1.Query)()),
326
+ __param(2, (0, http_1.Query)()),
327
+ __param(3, (0, http_1.Query)()),
328
+ __metadata("design:type", Function),
329
+ __metadata("design:paramtypes", [Object, QueryArgs_js_1.QueryArgs, QueryFilter_js_1.QueryFilter, QueryIncludes_js_1.QueryIncludes]),
330
+ __metadata("design:returntype", Promise)
331
+ ], Collections.prototype, "getAll", null);
332
+ __decorate([
333
+ (0, http_1.Get)(':model/:id'),
334
+ (0, rbac_http_1.Permission)('readAny'),
335
+ __param(0, (0, ModelType_js_1.ModelType)()),
336
+ __param(1, (0, http_1.Param)()),
337
+ __param(2, (0, http_1.Query)()),
338
+ __metadata("design:type", Function),
339
+ __metadata("design:paramtypes", [Object, Number, QueryIncludes_js_1.QueryIncludes]),
340
+ __metadata("design:returntype", Promise)
341
+ ], Collections.prototype, "get", null);
342
+ __decorate([
343
+ (0, http_1.Get)(':model/:id/:relation/:relationId'),
344
+ (0, rbac_http_1.Permission)('readAny'),
345
+ __param(0, (0, ModelType_js_1.ModelType)()),
346
+ __param(1, (0, http_1.Param)()),
347
+ __param(2, (0, http_1.Param)()),
348
+ __param(3, (0, http_1.Param)()),
349
+ __param(4, (0, http_1.Query)()),
350
+ __metadata("design:type", Function),
351
+ __metadata("design:paramtypes", [Object, Object, String, Object, QueryIncludes_js_1.QueryIncludes]),
352
+ __metadata("design:returntype", Promise)
353
+ ], Collections.prototype, "getRelation", null);
354
+ __decorate([
355
+ (0, http_1.Get)(':model/:id/:relation'),
356
+ (0, rbac_http_1.Permission)('readAny'),
357
+ __param(0, (0, ModelType_js_1.ModelType)()),
358
+ __param(1, (0, http_1.Param)()),
359
+ __param(2, (0, http_1.Param)()),
360
+ __param(3, (0, http_1.Query)()),
361
+ __param(4, (0, http_1.Query)()),
362
+ __param(5, (0, http_1.Query)()),
363
+ __metadata("design:type", Function),
364
+ __metadata("design:paramtypes", [Object, Object, String, QueryArgs_js_1.QueryArgs, QueryFilter_js_1.QueryFilter, QueryIncludes_js_1.QueryIncludes]),
365
+ __metadata("design:returntype", Promise)
366
+ ], Collections.prototype, "getRelations", null);
367
+ __decorate([
368
+ (0, http_1.Post)(':model'),
369
+ (0, rbac_http_1.Permission)('createAny'),
370
+ __param(0, (0, ModelType_js_1.ModelType)()),
371
+ __param(1, (0, http_1.BodyField)()),
372
+ __metadata("design:type", Function),
373
+ __metadata("design:paramtypes", [Object, Object]),
374
+ __metadata("design:returntype", Promise)
375
+ ], Collections.prototype, "save", null);
376
+ __decorate([
377
+ (0, http_1.Post)(':model/:id/relation/:relation'),
378
+ (0, rbac_http_1.Permission)('createAny'),
379
+ __param(0, (0, ModelType_js_1.ModelType)()),
380
+ __param(1, (0, http_1.Param)()),
381
+ __param(2, (0, http_1.Param)()),
382
+ __param(3, (0, http_1.BodyField)()),
383
+ __metadata("design:type", Function),
384
+ __metadata("design:paramtypes", [Object, Object, String, Object]),
385
+ __metadata("design:returntype", Promise)
386
+ ], Collections.prototype, "insertRelation", null);
387
+ __decorate([
388
+ (0, http_1.Put)(':model/:id'),
389
+ (0, rbac_http_1.Permission)('updateAny'),
390
+ __param(0, (0, ModelType_js_1.ModelType)()),
391
+ __param(1, (0, http_1.Param)()),
392
+ __param(2, (0, http_1.BodyField)()),
393
+ __metadata("design:type", Function),
394
+ __metadata("design:paramtypes", [Object, Number, Object]),
395
+ __metadata("design:returntype", Promise)
396
+ ], Collections.prototype, "update", null);
397
+ __decorate([
398
+ (0, http_1.Put)(':model/:id/relation/:relationId'),
399
+ (0, rbac_http_1.Permission)('updateAny'),
400
+ __param(0, (0, ModelType_js_1.ModelType)()),
401
+ __param(1, (0, http_1.Param)()),
402
+ __param(2, (0, http_1.Param)()),
403
+ __param(3, (0, http_1.Param)()),
404
+ __param(4, (0, http_1.BodyField)()),
405
+ __metadata("design:type", Function),
406
+ __metadata("design:paramtypes", [Object, Number, String, Object, Object]),
407
+ __metadata("design:returntype", Promise)
408
+ ], Collections.prototype, "updateRelation", null);
409
+ Collections = __decorate([
410
+ (0, http_1.BasePath)('collection'),
411
+ (0, rbac_http_1.Resource)('repository'),
412
+ (0, http_1.Policy)(FindModelType_js_1.FindModelType)
413
+ ], Collections);
414
+ exports.Collections = Collections;
415
+ //# sourceMappingURL=Collections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Collections.js","sourceRoot":"","sources":["../../../src/controllers/Collections.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=JsonApi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonApi.d.ts","sourceRoot":"","sources":["../../../src/controllers/JsonApi.ts"],"names":[],"mappings":""}