@spinajs/orm-api 2.0.265 → 2.0.266

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,6 +1,7 @@
1
1
  import { Orm, ModelBase } from '@spinajs/orm';
2
- import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
2
+ import { IRouteParameter, IRouteCall, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
3
3
  import { IContainer, Bootstrapper } from '@spinajs/di';
4
+ import { FromModelOptions } from './interfaces.js';
4
5
  export declare class AsDbModel extends RouteArgs {
5
6
  get SupportedType(): string;
6
7
  extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
@@ -13,10 +14,11 @@ export declare class FromDbModel extends RouteArgs {
13
14
  protected Orm: Orm;
14
15
  resolve(): Promise<void>;
15
16
  get SupportedType(): string;
16
- extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
17
+ extract(callData: IRouteCall, param: IRouteParameter<FromModelOptions<ModelBase>>, req: sRequest): Promise<{
17
18
  CallData: IRouteCall;
18
19
  Args: any;
19
20
  }>;
21
+ protected fromDbModelDefaultQueryFunction(callData: IRouteCall, param: IRouteParameter<FromModelOptions<ModelBase>>, req: sRequest): Promise<any>;
20
22
  }
21
23
  export declare class DbModelHydrator extends ArgHydrator {
22
24
  hydrate(input: any, parameter: IRouteParameter): Promise<any>;
@@ -35,7 +37,7 @@ export declare function AsModel(field?: string): (target: any, propertyKey?: str
35
37
  * @param type from where to get primary key value ( body, query, param )
36
38
  * @returns
37
39
  */
38
- export declare function FromModel(field?: string, type?: ParameterType): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
40
+ export declare function FromModel(options?: FromModelOptions<ModelBase<any>>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
39
41
  export declare class OrmHttpBootstrapper extends Bootstrapper {
40
42
  bootstrap(): Promise<void>;
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAE9F,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAKjF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAsBjF;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,yGAErC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE7D;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAQxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAA0E,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAmC,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAKjF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;;;;IAY7G,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;CAmDnI;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,yGAErC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,yGAEnE;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAQxC"}
package/lib/cjs/index.js CHANGED
@@ -33,24 +33,59 @@ let FromDbModel = class FromDbModel extends http_1.RouteArgs {
33
33
  return 'FromDB';
34
34
  }
35
35
  async extract(callData, param, req) {
36
- let p = null;
37
- switch (param.Options.type) {
36
+ let result = null;
37
+ if (param.Options.query) {
38
+ result = await param.Options.query.call(param.RuntimeType.query(), callData.Payload);
39
+ }
40
+ else {
41
+ result = await this.fromDbModelDefaultQueryFunction(callData, param, req);
42
+ }
43
+ return { CallData: callData, Args: result };
44
+ }
45
+ fromDbModelDefaultQueryFunction(callData, param, req) {
46
+ let pkValue = null;
47
+ const field = param.Options.field ?? param.Name;
48
+ switch (param.Options.paramType) {
38
49
  case http_1.ParameterType.FromQuery:
39
- p = req.query[param.Options.field ?? param.Name];
50
+ pkValue = req.query[field];
40
51
  break;
41
52
  case http_1.ParameterType.FromBody:
42
- p = req.body[param.Options.field ?? param.Name];
53
+ pkValue = req.body[field];
43
54
  break;
44
55
  case http_1.ParameterType.FromHeader:
45
- p = req.headers[param.Options.field ?? param.Name.toLowerCase()];
56
+ pkValue = req.headers[field.toLowerCase()];
46
57
  break;
47
58
  case http_1.ParameterType.FromParams:
48
59
  default:
49
- p = req.params[param.Options.field ?? param.Name];
60
+ pkValue = req.params[field];
50
61
  break;
51
62
  }
52
- const result = await param.RuntimeType['getOrFail'](p);
53
- return { CallData: callData, Args: result };
63
+ const query = param.RuntimeType['query']();
64
+ const descriptor = (0, orm_1.extractModelDescriptor)(param.RuntimeType);
65
+ query.where(descriptor.PrimaryKey, pkValue);
66
+ /**
67
+ * Checks BelongsToRelations
68
+ */
69
+ for (const [, v] of descriptor.Relations) {
70
+ // if its one-to-one relations ( belongsTo)
71
+ // check if we have same field in route param list
72
+ // If exists, we assume that we want parent ( owner of this model )
73
+ if (v.Type === orm_1.RelationType.One) {
74
+ for (const p in callData.Payload) {
75
+ // we check for underscore becouse most likely this var is unused in route func () and linter is rasing warnings
76
+ if (p.toLowerCase() === v.Name.toLowerCase() || p.toLowerCase() === `_${v.Name.toLowerCase()}`) {
77
+ query.where(v.ForeignKey, callData.Payload[p]);
78
+ }
79
+ }
80
+ }
81
+ }
82
+ /**
83
+ * Checks include field
84
+ */
85
+ if (callData.Payload.include || callData.Payload._include) {
86
+ query.populate(callData.Payload.include ?? callData.Payload._include);
87
+ }
88
+ return query.firstOrFail();
54
89
  }
55
90
  };
56
91
  exports.FromDbModel = FromDbModel;
@@ -93,8 +128,8 @@ exports.AsModel = AsModel;
93
128
  * @param type from where to get primary key value ( body, query, param )
94
129
  * @returns
95
130
  */
96
- function FromModel(field, type) {
97
- return (0, http_1.Route)((0, http_1.Parameter)('FromDbModel', null, { field, type }));
131
+ function FromModel(options) {
132
+ return (0, http_1.Route)((0, http_1.Parameter)('FromDbModel', null, { options }));
98
133
  }
99
134
  exports.FromModel = FromModel;
100
135
  let OrmHttpBootstrapper = class OrmHttpBootstrapper extends di_1.Bootstrapper {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,32 @@ export interface ITransformOptions {
18
18
  perPage?: number;
19
19
  model: Class<ModelBase<unknown>>;
20
20
  }
21
+ export interface FromModelOptions<T extends ModelBase> {
22
+ /**
23
+ * Optiona route/param/body field for primary key
24
+ * If not set , model primary key is used
25
+ */
26
+ field?: string;
27
+ /**
28
+ * From where to get primary key value
29
+ * Eg. body, query, param, header etc.
30
+ *
31
+ * If not set, param is used
32
+ */
33
+ paramType?: string;
34
+ /**
35
+ *
36
+ * Callback on query builder before model is fetched from DB
37
+ *
38
+ * It allows to modify query with data passed to route.
39
+ * If not set it check for include, model owner ( if has @BelongsTo field marked) etc.
40
+ *
41
+ * @param this
42
+ * @param routeParams passed route params to query
43
+ * @returns
44
+ */
45
+ query?: (this: SelectQueryBuilder<T>, routeParams: any) => SelectQueryBuilder;
46
+ }
21
47
  export interface IQueryFilterEntry {
22
48
  val: string;
23
49
  op?: string;
@@ -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,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"}
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,gBAAgB,CAAC,CAAC,SAAS,SAAS;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,kBAAkB,CAAC;CAC/E;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;AAED;;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,oDAA6C;AAC7C,wCAA+C;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,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAM,EAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;AAgBD;;;GAGG;AACH,MAAsB,wBAAwB;CAE7C;AAFD,4DAEC;AAGD;;GAEG;AACH,MAAsB,IAAK,SAAQ,qBAAc;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;AAbD,oBAaC"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,oDAA6C;AAC7C,wCAA+C;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,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAM,EAAC,yCAAyC,CAAC;;GACrC,qBAAqB,CAWjC;AA6CD;;;GAGG;AACH,MAAsB,wBAAwB;CAE7C;AAFD,4DAEC;AAED;;GAEG;AACH,MAAsB,IAAK,SAAQ,qBAAc;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;AAbD,oBAaC"}
@@ -1,6 +1,7 @@
1
1
  import { Orm, ModelBase } from '@spinajs/orm';
2
- import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
2
+ import { IRouteParameter, IRouteCall, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
3
3
  import { IContainer, Bootstrapper } from '@spinajs/di';
4
+ import { FromModelOptions } from './interfaces.js';
4
5
  export declare class AsDbModel extends RouteArgs {
5
6
  get SupportedType(): string;
6
7
  extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
@@ -13,10 +14,11 @@ export declare class FromDbModel extends RouteArgs {
13
14
  protected Orm: Orm;
14
15
  resolve(): Promise<void>;
15
16
  get SupportedType(): string;
16
- extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
17
+ extract(callData: IRouteCall, param: IRouteParameter<FromModelOptions<ModelBase>>, req: sRequest): Promise<{
17
18
  CallData: IRouteCall;
18
19
  Args: any;
19
20
  }>;
21
+ protected fromDbModelDefaultQueryFunction(callData: IRouteCall, param: IRouteParameter<FromModelOptions<ModelBase>>, req: sRequest): Promise<any>;
20
22
  }
21
23
  export declare class DbModelHydrator extends ArgHydrator {
22
24
  hydrate(input: any, parameter: IRouteParameter): Promise<any>;
@@ -35,7 +37,7 @@ export declare function AsModel(field?: string): (target: any, propertyKey?: str
35
37
  * @param type from where to get primary key value ( body, query, param )
36
38
  * @returns
37
39
  */
38
- export declare function FromModel(field?: string, type?: ParameterType): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
40
+ export declare function FromModel(options?: FromModelOptions<ModelBase<any>>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
39
41
  export declare class OrmHttpBootstrapper extends Bootstrapper {
40
42
  bootstrap(): Promise<void>;
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAAgB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAoB,aAAa,EAAE,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAE9F,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAKjF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAsBjF;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,yGAErC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE7D;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAQxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,EAA0E,MAAM,cAAc,CAAC;AACtH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAmC,WAAW,EAAE,OAAO,IAAI,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1I,OAAO,EAAE,UAAU,EAAqC,YAAY,EAAM,MAAM,aAAa,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAKjF;AAED,qBACa,WAAY,SAAQ,SAAS;IAExC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;IAGhC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAEb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;;;;IAY7G,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;CAmDnI;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,yGAErC;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,yGAEnE;AAED,qBACa,mBAAoB,SAAQ,YAAY;IACtC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAQxC"}
package/lib/mjs/index.js CHANGED
@@ -7,7 +7,7 @@ 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 { Orm, OrmException } from '@spinajs/orm';
10
+ import { Orm, OrmException, extractModelDescriptor, RelationType } from '@spinajs/orm';
11
11
  import { Parameter, Route, ParameterType, ArgHydrator, RouteArgs } from '@spinajs/http';
12
12
  import { Injectable, Container, Autoinject, Bootstrapper, DI } from '@spinajs/di';
13
13
  let AsDbModel = class AsDbModel extends RouteArgs {
@@ -30,24 +30,59 @@ let FromDbModel = class FromDbModel extends RouteArgs {
30
30
  return 'FromDB';
31
31
  }
32
32
  async extract(callData, param, req) {
33
- let p = null;
34
- switch (param.Options.type) {
33
+ let result = null;
34
+ if (param.Options.query) {
35
+ result = await param.Options.query.call(param.RuntimeType.query(), callData.Payload);
36
+ }
37
+ else {
38
+ result = await this.fromDbModelDefaultQueryFunction(callData, param, req);
39
+ }
40
+ return { CallData: callData, Args: result };
41
+ }
42
+ fromDbModelDefaultQueryFunction(callData, param, req) {
43
+ let pkValue = null;
44
+ const field = param.Options.field ?? param.Name;
45
+ switch (param.Options.paramType) {
35
46
  case ParameterType.FromQuery:
36
- p = req.query[param.Options.field ?? param.Name];
47
+ pkValue = req.query[field];
37
48
  break;
38
49
  case ParameterType.FromBody:
39
- p = req.body[param.Options.field ?? param.Name];
50
+ pkValue = req.body[field];
40
51
  break;
41
52
  case ParameterType.FromHeader:
42
- p = req.headers[param.Options.field ?? param.Name.toLowerCase()];
53
+ pkValue = req.headers[field.toLowerCase()];
43
54
  break;
44
55
  case ParameterType.FromParams:
45
56
  default:
46
- p = req.params[param.Options.field ?? param.Name];
57
+ pkValue = req.params[field];
47
58
  break;
48
59
  }
49
- const result = await param.RuntimeType['getOrFail'](p);
50
- return { CallData: callData, Args: result };
60
+ const query = param.RuntimeType['query']();
61
+ const descriptor = extractModelDescriptor(param.RuntimeType);
62
+ query.where(descriptor.PrimaryKey, pkValue);
63
+ /**
64
+ * Checks BelongsToRelations
65
+ */
66
+ for (const [, v] of descriptor.Relations) {
67
+ // if its one-to-one relations ( belongsTo)
68
+ // check if we have same field in route param list
69
+ // If exists, we assume that we want parent ( owner of this model )
70
+ if (v.Type === RelationType.One) {
71
+ for (const p in callData.Payload) {
72
+ // we check for underscore becouse most likely this var is unused in route func () and linter is rasing warnings
73
+ if (p.toLowerCase() === v.Name.toLowerCase() || p.toLowerCase() === `_${v.Name.toLowerCase()}`) {
74
+ query.where(v.ForeignKey, callData.Payload[p]);
75
+ }
76
+ }
77
+ }
78
+ }
79
+ /**
80
+ * Checks include field
81
+ */
82
+ if (callData.Payload.include || callData.Payload._include) {
83
+ query.populate(callData.Payload.include ?? callData.Payload._include);
84
+ }
85
+ return query.firstOrFail();
51
86
  }
52
87
  };
53
88
  __decorate([
@@ -88,8 +123,8 @@ export function AsModel(field) {
88
123
  * @param type from where to get primary key value ( body, query, param )
89
124
  * @returns
90
125
  */
91
- export function FromModel(field, type) {
92
- return Route(Parameter('FromDbModel', null, { field, type }));
126
+ export function FromModel(options) {
127
+ return Route(Parameter('FromDbModel', null, { options }));
93
128
  }
94
129
  let OrmHttpBootstrapper = class OrmHttpBootstrapper extends Bootstrapper {
95
130
  async bootstrap() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,32 @@ export interface ITransformOptions {
18
18
  perPage?: number;
19
19
  model: Class<ModelBase<unknown>>;
20
20
  }
21
+ export interface FromModelOptions<T extends ModelBase> {
22
+ /**
23
+ * Optiona route/param/body field for primary key
24
+ * If not set , model primary key is used
25
+ */
26
+ field?: string;
27
+ /**
28
+ * From where to get primary key value
29
+ * Eg. body, query, param, header etc.
30
+ *
31
+ * If not set, param is used
32
+ */
33
+ paramType?: string;
34
+ /**
35
+ *
36
+ * Callback on query builder before model is fetched from DB
37
+ *
38
+ * It allows to modify query with data passed to route.
39
+ * If not set it check for include, model owner ( if has @BelongsTo field marked) etc.
40
+ *
41
+ * @param this
42
+ * @param routeParams passed route params to query
43
+ * @returns
44
+ */
45
+ query?: (this: SelectQueryBuilder<T>, routeParams: any) => SelectQueryBuilder;
46
+ }
21
47
  export interface IQueryFilterEntry {
22
48
  val: string;
23
49
  op?: string;
@@ -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,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"}
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,gBAAgB,CAAC,CAAC,SAAS,SAAS;IACnD;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,kBAAkB,CAAC;CAC/E;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;AAED;;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"}
@@ -1 +1 @@
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;;AAgBD;;;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"}
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;;AA6CD;;;GAGG;AACH,MAAM,OAAgB,wBAAwB;CAE7C;AAED;;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"}