@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.
- package/lib/cjs/index.d.ts +5 -3
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +45 -10
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +26 -0
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/mjs/index.d.ts +5 -3
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +46 -11
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +26 -0
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +12 -12
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Orm, ModelBase } from '@spinajs/orm';
|
|
2
|
-
import { IRouteParameter, IRouteCall,
|
|
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
|
|
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(
|
|
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
|
}
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,
|
|
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
|
|
37
|
-
|
|
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
|
-
|
|
50
|
+
pkValue = req.query[field];
|
|
40
51
|
break;
|
|
41
52
|
case http_1.ParameterType.FromBody:
|
|
42
|
-
|
|
53
|
+
pkValue = req.body[field];
|
|
43
54
|
break;
|
|
44
55
|
case http_1.ParameterType.FromHeader:
|
|
45
|
-
|
|
56
|
+
pkValue = req.headers[field.toLowerCase()];
|
|
46
57
|
break;
|
|
47
58
|
case http_1.ParameterType.FromParams:
|
|
48
59
|
default:
|
|
49
|
-
|
|
60
|
+
pkValue = req.params[field];
|
|
50
61
|
break;
|
|
51
62
|
}
|
|
52
|
-
const
|
|
53
|
-
|
|
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(
|
|
97
|
-
return (0, http_1.Route)((0, http_1.Parameter)('FromDbModel', null, {
|
|
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 {
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -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;
|
|
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;
|
|
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"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Orm, ModelBase } from '@spinajs/orm';
|
|
2
|
-
import { IRouteParameter, IRouteCall,
|
|
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
|
|
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(
|
|
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
|
}
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,SAAS,
|
|
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
|
|
34
|
-
|
|
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
|
-
|
|
47
|
+
pkValue = req.query[field];
|
|
37
48
|
break;
|
|
38
49
|
case ParameterType.FromBody:
|
|
39
|
-
|
|
50
|
+
pkValue = req.body[field];
|
|
40
51
|
break;
|
|
41
52
|
case ParameterType.FromHeader:
|
|
42
|
-
|
|
53
|
+
pkValue = req.headers[field.toLowerCase()];
|
|
43
54
|
break;
|
|
44
55
|
case ParameterType.FromParams:
|
|
45
56
|
default:
|
|
46
|
-
|
|
57
|
+
pkValue = req.params[field];
|
|
47
58
|
break;
|
|
48
59
|
}
|
|
49
|
-
const
|
|
50
|
-
|
|
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(
|
|
92
|
-
return Route(Parameter('FromDbModel', null, {
|
|
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() {
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,GAAG,EAAa,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/interfaces.d.ts
CHANGED
|
@@ -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;
|
|
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;;
|
|
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"}
|