@spinajs/orm-api 2.0.146 → 2.0.148

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 (102) hide show
  1. package/lib/cjs/config/{orm-http.d.ts → orm-api.d.ts} +1 -1
  2. package/lib/cjs/config/orm-api.d.ts.map +1 -0
  3. package/lib/cjs/config/{orm-http.js → orm-api.js} +1 -1
  4. package/lib/cjs/config/orm-api.js.map +1 -0
  5. package/lib/cjs/controllers/crud/Create.d.ts +1 -1
  6. package/lib/cjs/controllers/crud/Create.d.ts.map +1 -1
  7. package/lib/cjs/controllers/crud/Create.js +2 -2
  8. package/lib/cjs/controllers/crud/Create.js.map +1 -1
  9. package/lib/cjs/controllers/crud/Crud.d.ts +0 -12
  10. package/lib/cjs/controllers/crud/Crud.d.ts.map +1 -1
  11. package/lib/cjs/controllers/crud/Crud.js +0 -21
  12. package/lib/cjs/controllers/crud/Crud.js.map +1 -1
  13. package/lib/cjs/controllers/crud/Delete.d.ts +1 -1
  14. package/lib/cjs/controllers/crud/Delete.d.ts.map +1 -1
  15. package/lib/cjs/controllers/crud/Delete.js +2 -2
  16. package/lib/cjs/controllers/crud/Delete.js.map +1 -1
  17. package/lib/cjs/controllers/crud/Read.d.ts +10 -5
  18. package/lib/cjs/controllers/crud/Read.d.ts.map +1 -1
  19. package/lib/cjs/controllers/crud/Read.js +36 -39
  20. package/lib/cjs/controllers/crud/Read.js.map +1 -1
  21. package/lib/cjs/controllers/crud/Update.d.ts +1 -1
  22. package/lib/cjs/controllers/crud/Update.d.ts.map +1 -1
  23. package/lib/cjs/controllers/crud/Update.js +2 -2
  24. package/lib/cjs/controllers/crud/Update.js.map +1 -1
  25. package/lib/cjs/dto/QueryFilter.d.ts +2 -1
  26. package/lib/cjs/dto/QueryFilter.d.ts.map +1 -1
  27. package/lib/cjs/dto/QueryFilter.js +6 -0
  28. package/lib/cjs/dto/QueryFilter.js.map +1 -1
  29. package/lib/cjs/dto/QueryIncludes.d.ts +1 -1
  30. package/lib/cjs/dto/QueryIncludes.d.ts.map +1 -1
  31. package/lib/cjs/dto/QueryIncludes.js +6 -0
  32. package/lib/cjs/dto/QueryIncludes.js.map +1 -1
  33. package/lib/cjs/hydrators/QueryFilterHydrator.d.ts +1 -1
  34. package/lib/cjs/hydrators/QueryFilterHydrator.d.ts.map +1 -1
  35. package/lib/cjs/hydrators/QueryFilterHydrator.js.map +1 -1
  36. package/lib/cjs/interfaces.d.ts +16 -1
  37. package/lib/cjs/interfaces.d.ts.map +1 -1
  38. package/lib/cjs/interfaces.js +19 -1
  39. package/lib/cjs/interfaces.js.map +1 -1
  40. package/lib/cjs/schemas/QueryFilter.schema.d.ts +21 -0
  41. package/lib/cjs/schemas/QueryFilter.schema.d.ts.map +1 -0
  42. package/lib/cjs/schemas/QueryFilter.schema.js +16 -0
  43. package/lib/cjs/schemas/QueryFilter.schema.js.map +1 -0
  44. package/lib/cjs/schemas/QueryIncludes.schema.d.ts +8 -0
  45. package/lib/cjs/schemas/QueryIncludes.schema.d.ts.map +1 -0
  46. package/lib/cjs/schemas/QueryIncludes.schema.js +10 -0
  47. package/lib/cjs/schemas/QueryIncludes.schema.js.map +1 -0
  48. package/lib/mjs/config/{orm-http.d.ts → orm-api.d.ts} +1 -1
  49. package/lib/mjs/config/orm-api.d.ts.map +1 -0
  50. package/lib/mjs/config/{orm-http.js → orm-api.js} +1 -1
  51. package/lib/mjs/config/orm-api.js.map +1 -0
  52. package/lib/mjs/controllers/crud/Create.d.ts +1 -1
  53. package/lib/mjs/controllers/crud/Create.d.ts.map +1 -1
  54. package/lib/mjs/controllers/crud/Create.js +1 -1
  55. package/lib/mjs/controllers/crud/Create.js.map +1 -1
  56. package/lib/mjs/controllers/crud/Crud.d.ts +1 -12
  57. package/lib/mjs/controllers/crud/Crud.d.ts.map +1 -1
  58. package/lib/mjs/controllers/crud/Crud.js +1 -17
  59. package/lib/mjs/controllers/crud/Crud.js.map +1 -1
  60. package/lib/mjs/controllers/crud/Delete.d.ts +1 -1
  61. package/lib/mjs/controllers/crud/Delete.d.ts.map +1 -1
  62. package/lib/mjs/controllers/crud/Delete.js +1 -1
  63. package/lib/mjs/controllers/crud/Delete.js.map +1 -1
  64. package/lib/mjs/controllers/crud/Read.d.ts +10 -5
  65. package/lib/mjs/controllers/crud/Read.d.ts.map +1 -1
  66. package/lib/mjs/controllers/crud/Read.js +35 -38
  67. package/lib/mjs/controllers/crud/Read.js.map +1 -1
  68. package/lib/mjs/controllers/crud/Update.d.ts +1 -1
  69. package/lib/mjs/controllers/crud/Update.d.ts.map +1 -1
  70. package/lib/mjs/controllers/crud/Update.js +1 -1
  71. package/lib/mjs/controllers/crud/Update.js.map +1 -1
  72. package/lib/mjs/dto/QueryFilter.d.ts +2 -1
  73. package/lib/mjs/dto/QueryFilter.d.ts.map +1 -1
  74. package/lib/mjs/dto/QueryFilter.js +3 -0
  75. package/lib/mjs/dto/QueryFilter.js.map +1 -1
  76. package/lib/mjs/dto/QueryIncludes.d.ts +1 -1
  77. package/lib/mjs/dto/QueryIncludes.d.ts.map +1 -1
  78. package/lib/mjs/dto/QueryIncludes.js +5 -2
  79. package/lib/mjs/dto/QueryIncludes.js.map +1 -1
  80. package/lib/mjs/hydrators/QueryFilterHydrator.d.ts +1 -1
  81. package/lib/mjs/hydrators/QueryFilterHydrator.d.ts.map +1 -1
  82. package/lib/mjs/hydrators/QueryFilterHydrator.js +2 -2
  83. package/lib/mjs/hydrators/QueryFilterHydrator.js.map +1 -1
  84. package/lib/mjs/interfaces.d.ts +16 -1
  85. package/lib/mjs/interfaces.d.ts.map +1 -1
  86. package/lib/mjs/interfaces.js +17 -0
  87. package/lib/mjs/interfaces.js.map +1 -1
  88. package/lib/mjs/schemas/QueryFilter.schema.d.ts +21 -0
  89. package/lib/mjs/schemas/QueryFilter.schema.d.ts.map +1 -0
  90. package/lib/mjs/schemas/QueryFilter.schema.js +14 -0
  91. package/lib/mjs/schemas/QueryFilter.schema.js.map +1 -0
  92. package/lib/mjs/schemas/QueryIncludes.schema.d.ts +8 -0
  93. package/lib/mjs/schemas/QueryIncludes.schema.d.ts.map +1 -0
  94. package/lib/mjs/schemas/QueryIncludes.schema.js +8 -0
  95. package/lib/mjs/schemas/QueryIncludes.schema.js.map +1 -0
  96. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  97. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  98. package/package.json +12 -12
  99. package/lib/cjs/config/orm-http.d.ts.map +0 -1
  100. package/lib/cjs/config/orm-http.js.map +0 -1
  101. package/lib/mjs/config/orm-http.d.ts.map +0 -1
  102. package/lib/mjs/config/orm-http.js.map +0 -1
@@ -9,6 +9,8 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { Hydrator } from "@spinajs/http";
11
11
  import { GetFilterHydrator } from "../hydrators/QueryFilterHydrator.js";
12
+ import QueryFilterSchema from "../schemas/QueryFilter.schema.js";
13
+ import { Schema } from "@spinajs/validation";
12
14
  let QueryFilter = class QueryFilter {
13
15
  constructor(data) {
14
16
  Object.assign(this, data);
@@ -16,6 +18,7 @@ let QueryFilter = class QueryFilter {
16
18
  };
17
19
  QueryFilter = __decorate([
18
20
  Hydrator(GetFilterHydrator),
21
+ Schema(QueryFilterSchema),
19
22
  __metadata("design:paramtypes", [Object])
20
23
  ], QueryFilter);
21
24
  export { QueryFilter };
@@ -1 +1 @@
1
- {"version":3,"file":"QueryFilter.js","sourceRoot":"","sources":["../../../src/dto/QueryFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAGjE,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGpB,YAAY,IAAS;QACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAA;AANY,WAAW;IADvB,QAAQ,CAAC,iBAAiB,CAAC;;GACf,WAAW,CAMvB;SANY,WAAW"}
1
+ {"version":3,"file":"QueryFilter.js","sourceRoot":"","sources":["../../../src/dto/QueryFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAItC,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGpB,YAAY,IAAS;QACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAA;AANY,WAAW;IAFvB,QAAQ,CAAC,iBAAiB,CAAC;IAC3B,MAAM,CAAC,iBAAiB,CAAC;;GACb,WAAW,CAMvB;SANY,WAAW"}
@@ -1,5 +1,5 @@
1
1
  export declare class QueryIncludes {
2
- [key: string]: QueryIncludes;
2
+ [key: string]: string;
3
3
  constructor(data: any);
4
4
  }
5
5
  //# sourceMappingURL=QueryIncludes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryIncludes.d.ts","sourceRoot":"","sources":["../../../src/dto/QueryIncludes.ts"],"names":[],"mappings":"AAGA,qBACa,aAAa;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAC;gBAEjB,IAAI,EAAE,GAAG;CAGxB"}
1
+ {"version":3,"file":"QueryIncludes.d.ts","sourceRoot":"","sources":["../../../src/dto/QueryIncludes.ts"],"names":[],"mappings":"AAKA,qBAEa,aAAa;IACxB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;gBAEV,IAAI,EAAE,GAAG;CAGtB"}
@@ -7,8 +7,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
- import { Hydrator } from "@spinajs/http";
11
- import { QueryIncludesHydrator } from "../hydrators/QueryIncludesHydrator.js";
10
+ import { Hydrator } from '@spinajs/http';
11
+ import { QueryIncludesHydrator } from '../hydrators/QueryIncludesHydrator.js';
12
+ import QueryIncludesSchema from '../schemas/QueryIncludes.schema.js';
13
+ import { Schema } from '@spinajs/validation';
12
14
  let QueryIncludes = class QueryIncludes {
13
15
  constructor(data) {
14
16
  Object.assign(this, data);
@@ -16,6 +18,7 @@ let QueryIncludes = class QueryIncludes {
16
18
  };
17
19
  QueryIncludes = __decorate([
18
20
  Hydrator(QueryIncludesHydrator),
21
+ Schema(QueryIncludesSchema),
19
22
  __metadata("design:paramtypes", [Object])
20
23
  ], QueryIncludes);
21
24
  export { QueryIncludes };
@@ -1 +1 @@
1
- {"version":3,"file":"QueryIncludes.js","sourceRoot":"","sources":["../../../src/dto/QueryIncludes.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAGvE,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGtB,YAAY,IAAS;QACjB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;CACJ,CAAA;AANY,aAAa;IADzB,QAAQ,CAAC,qBAAqB,CAAC;;GACnB,aAAa,CAMzB;SANY,aAAa"}
1
+ {"version":3,"file":"QueryIncludes.js","sourceRoot":"","sources":["../../../src/dto/QueryIncludes.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAItC,IAAM,aAAa,GAAnB,MAAM,aAAa;IAGxB,YAAY,IAAS;QACnB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AANY,aAAa;IAFzB,QAAQ,CAAC,qBAAqB,CAAC;IAC/B,MAAM,CAAC,mBAAmB,CAAC;;GACf,aAAa,CAMzB;SANY,aAAa"}
@@ -1,4 +1,4 @@
1
- import { ArgHydrator } from "@spinajs/http";
1
+ import { ArgHydrator } from '@spinajs/http';
2
2
  export declare class GetFilterHydrator extends ArgHydrator {
3
3
  hydrate(input: string): Promise<any>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryFilterHydrator.d.ts","sourceRoot":"","sources":["../../../src/hydrators/QueryFilterHydrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,qBAAa,iBAAkB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAMlD"}
1
+ {"version":3,"file":"QueryFilterHydrator.d.ts","sourceRoot":"","sources":["../../../src/hydrators/QueryFilterHydrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,WAAW;IACnC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAMlD"}
@@ -1,5 +1,5 @@
1
- import { ArgHydrator } from "@spinajs/http";
2
- import { QueryFilter } from "../dto/QueryFilter.js";
1
+ import { ArgHydrator } from '@spinajs/http';
2
+ import { QueryFilter } from '../dto/QueryFilter.js';
3
3
  export class GetFilterHydrator extends ArgHydrator {
4
4
  async hydrate(input) {
5
5
  if (input) {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryFilterHydrator.js","sourceRoot":"","sources":["../../../src/hydrators/QueryFilterHydrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACvC,KAAK,CAAC,OAAO,CAAC,KAAa;QAChC,IAAI,KAAK,EAAE;YACT,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"QueryFilterHydrator.js","sourceRoot":"","sources":["../../../src/hydrators/QueryFilterHydrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IACzC,KAAK,CAAC,OAAO,CAAC,KAAa;QAChC,IAAI,KAAK,EAAE;YACT,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { Class } from '@spinajs/di';
2
- import { ModelBase, SortOrder } from '@spinajs/orm';
2
+ import { ModelBase, SortOrder, IModelStatic, IOrmRelation, SelectQueryBuilder } from '@spinajs/orm';
3
+ import { BaseController } from '@spinajs/http';
3
4
  export declare class JsonApiIncomingObject {
4
5
  data: {
5
6
  type: string;
@@ -17,6 +18,10 @@ export interface ITransformOptions {
17
18
  perPage?: number;
18
19
  model: Class<ModelBase<unknown>>;
19
20
  }
21
+ export interface IQueryFilterEntry {
22
+ val: string;
23
+ op?: string;
24
+ }
20
25
  /**
21
26
  * Data collection transformer. Used to transform collection of models to specific api format eg. json api
22
27
  * By default transforms to simple json representation
@@ -24,4 +29,14 @@ export interface ITransformOptions {
24
29
  export declare abstract class CollectionApiTransformer {
25
30
  abstract transform(data: ModelBase<unknown>[] | ModelBase<unknown>, options?: ITransformOptions): unknown;
26
31
  }
32
+ /**
33
+ * Base class for crud operations. Provides helper functions
34
+ */
35
+ export declare abstract class Crud extends BaseController {
36
+ protected prepareQuery(model: IModelStatic, relation: string, id: any, callback: (this: SelectQueryBuilder<SelectQueryBuilder<any>>, relation: IOrmRelation) => void): {
37
+ relation: any;
38
+ relationModel: any;
39
+ query: import("@spinajs/orm").ISelectQueryBuilder<ModelBase<unknown>[]>;
40
+ };
41
+ }
27
42
  //# sourceMappingURL=interfaces.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGpD,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAQ;gBAEG,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,8BAAsB,wBAAwB;aAC5B,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO;CACjH"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpG,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAI/C,qBACa,qBAAqB;IACzB,IAAI,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,aAAa,EAAE,GAAG,CAAC;KACpB,CAAQ;gBAEG,IAAI,EAAE,GAAG;CAGtB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,8BAAsB,wBAAwB;aAC5B,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO;CACjH;AAGD;;GAEG;AACH,8BAAsB,IAAK,SAAQ,cAAc;IAC/C,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"}
@@ -8,6 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Schema } from '@spinajs/validation';
11
+ import { BaseController } from '@spinajs/http';
11
12
  let JsonApiIncomingObject = class JsonApiIncomingObject {
12
13
  constructor(data) {
13
14
  this.data = null;
@@ -25,4 +26,20 @@ export { JsonApiIncomingObject };
25
26
  */
26
27
  export class CollectionApiTransformer {
27
28
  }
29
+ /**
30
+ * Base class for crud operations. Provides helper functions
31
+ */
32
+ export class Crud extends BaseController {
33
+ prepareQuery(model, relation, id, callback) {
34
+ const descriptor = this.getModelDescriptor(model);
35
+ const rDescriptor = this.getRelationDescriptor(model, relation);
36
+ const tDescriptor = this.getModelDescriptor(rDescriptor.TargetModel);
37
+ const sQuery = model.query().where(descriptor.PrimaryKey, id).populate(relation, callback);
38
+ return {
39
+ relation: rDescriptor,
40
+ relationModel: tDescriptor,
41
+ query: sQuery,
42
+ };
43
+ }
44
+ }
28
45
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGtC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAQhC,YAAY,IAAS;QAPd,SAAI,GAKP,IAAI,CAAC;QAGP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAXY,qBAAqB;IADjC,MAAM,CAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;SAXY,qBAAqB;AAsBlC;;;GAGG;AACH,MAAM,OAAgB,wBAAwB;CAE7C"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKxC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAQhC,YAAY,IAAS;QAPd,SAAI,GAKP,IAAI,CAAC;QAGP,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AAXY,qBAAqB;IADjC,MAAM,CAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;SAXY,qBAAqB;AA2BlC;;;GAGG;AACH,MAAM,OAAgB,wBAAwB;CAE7C;AAGD;;GAEG;AACH,MAAM,OAAgB,IAAK,SAAQ,cAAc;IACrC,YAAY,CAAC,KAAmB,EAAE,QAAgB,EAAE,EAAO,EAAE,QAA6F;QAClK,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3F,OAAO;YACL,QAAQ,EAAE,WAAW;YACrB,aAAa,EAAE,WAAW;YAC1B,KAAK,EAAE,MAAM;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ declare const QueryFilterSchema: {
2
+ type: string;
3
+ items: {
4
+ type: string;
5
+ properties: {
6
+ key: {
7
+ type: string;
8
+ };
9
+ val: {
10
+ type: string;
11
+ };
12
+ op: {
13
+ type: string;
14
+ enum: string[];
15
+ };
16
+ };
17
+ required: string[];
18
+ };
19
+ };
20
+ export default QueryFilterSchema;
21
+ //# sourceMappingURL=QueryFilter.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryFilter.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/QueryFilter.schema.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;CAWtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,14 @@
1
+ const QueryFilterSchema = {
2
+ type: 'array',
3
+ items: {
4
+ type: 'object',
5
+ properties: {
6
+ key: { type: 'string' },
7
+ val: { type: 'number' },
8
+ op: { type: 'string', enum: ['=', '!=', 'like', '<', '>', '<=', '>='] },
9
+ },
10
+ required: ['key', 'val'],
11
+ },
12
+ };
13
+ export default QueryFilterSchema;
14
+ //# sourceMappingURL=QueryFilter.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryFilter.schema.js","sourceRoot":"","sources":["../../../src/schemas/QueryFilter.schema.ts"],"names":[],"mappings":"AAAA,MAAM,iBAAiB,GAAG;IACxB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE;SACxE;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;KACzB;CACF,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ declare const QueryIncludesSchema: {
2
+ type: string;
3
+ items: {
4
+ type: string;
5
+ };
6
+ };
7
+ export default QueryIncludesSchema;
8
+ //# sourceMappingURL=QueryIncludes.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryIncludes.schema.d.ts","sourceRoot":"","sources":["../../../src/schemas/QueryIncludes.schema.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,mBAAmB;;;;;CAKxB,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ const QueryIncludesSchema = {
2
+ type: 'array',
3
+ items: {
4
+ type: 'string',
5
+ },
6
+ };
7
+ export default QueryIncludesSchema;
8
+ //# sourceMappingURL=QueryIncludes.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryIncludes.schema.js","sourceRoot":"","sources":["../../../src/schemas/QueryIncludes.schema.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,OAAO;IACb,KAAK,EAAE;QACL,IAAI,EAAE,QAAQ;KACf;CACF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}