@spinajs/orm-http 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 +8 -5
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +56 -12
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interfaces.d.ts +27 -1
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/response-methods/OrmNotFound.d.ts +8 -0
- package/lib/cjs/response-methods/OrmNotFound.d.ts.map +1 -0
- package/lib/cjs/response-methods/OrmNotFound.js +30 -0
- package/lib/cjs/response-methods/OrmNotFound.js.map +1 -0
- package/lib/mjs/index.d.ts +8 -5
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +61 -17
- package/lib/mjs/index.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +27 -1
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/response-methods/OrmNotFound.d.ts +8 -0
- package/lib/mjs/response-methods/OrmNotFound.d.ts.map +1 -0
- package/lib/mjs/response-methods/OrmNotFound.js +27 -0
- package/lib/mjs/response-methods/OrmNotFound.js.map +1 -0
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +10 -10
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Orm, ModelBase } from '@spinajs/orm';
|
|
2
2
|
import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
|
|
3
3
|
import { IContainer, Bootstrapper } from '@spinajs/di';
|
|
4
|
-
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
4
|
+
import { FromModelOptions } from './interfaces.js';
|
|
5
|
+
export * from './interfaces.js';
|
|
6
|
+
export * from './model.js';
|
|
7
|
+
export * from './decorators.js';
|
|
7
8
|
export * from './extension.js';
|
|
8
|
-
export * from
|
|
9
|
+
export * from './route-arg.js';
|
|
9
10
|
export * from './builders.js';
|
|
10
11
|
export * from './dto.js';
|
|
12
|
+
export * from './response-methods/OrmNotFound.js';
|
|
11
13
|
export declare class AsDbModel extends RouteArgs {
|
|
12
14
|
get SupportedType(): string;
|
|
13
15
|
extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
|
|
@@ -24,12 +26,13 @@ export declare class FromDbModel extends RouteArgs {
|
|
|
24
26
|
CallData: IRouteCall;
|
|
25
27
|
Args: any;
|
|
26
28
|
}>;
|
|
29
|
+
protected fromDbModelDefaultQueryFunction(callData: IRouteCall, param: IRouteParameter<FromModelOptions<ModelBase>>, req: sRequest): Promise<any>;
|
|
27
30
|
}
|
|
28
31
|
export declare class DbModelHydrator extends ArgHydrator {
|
|
29
32
|
hydrate(input: any, parameter: IRouteParameter): Promise<any>;
|
|
30
33
|
}
|
|
31
34
|
export declare function AsModel(field?: string, type?: ParameterType): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
32
|
-
export declare function FromModel(
|
|
35
|
+
export declare function FromModel(options?: FromModelOptions<ModelBase<any>>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
33
36
|
export declare class OrmHttpBootstrapper extends Bootstrapper {
|
|
34
37
|
bootstrap(): Promise<void>;
|
|
35
38
|
}
|
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,EAAgG,MAAM,cAAc,CAAC;AAC5I,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,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mCAAmC,CAAC;AAElD,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAajF;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;;;;IAYhF,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;CA8DnI;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED,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;CAgBxC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -28,6 +28,7 @@ const orm_1 = require("@spinajs/orm");
|
|
|
28
28
|
const http_1 = require("@spinajs/http");
|
|
29
29
|
const di_1 = require("@spinajs/di");
|
|
30
30
|
const model_js_1 = require("./model.js");
|
|
31
|
+
const exceptions_1 = require("@spinajs/exceptions");
|
|
31
32
|
__exportStar(require("./interfaces.js"), exports);
|
|
32
33
|
__exportStar(require("./model.js"), exports);
|
|
33
34
|
__exportStar(require("./decorators.js"), exports);
|
|
@@ -35,6 +36,7 @@ __exportStar(require("./extension.js"), exports);
|
|
|
35
36
|
__exportStar(require("./route-arg.js"), exports);
|
|
36
37
|
__exportStar(require("./builders.js"), exports);
|
|
37
38
|
__exportStar(require("./dto.js"), exports);
|
|
39
|
+
__exportStar(require("./response-methods/OrmNotFound.js"), exports);
|
|
38
40
|
let AsDbModel = class AsDbModel extends http_1.RouteArgs {
|
|
39
41
|
get SupportedType() {
|
|
40
42
|
return 'AsDbModel';
|
|
@@ -59,27 +61,69 @@ let FromDbModel = class FromDbModel extends http_1.RouteArgs {
|
|
|
59
61
|
return 'FromDB';
|
|
60
62
|
}
|
|
61
63
|
async extract(callData, param, req) {
|
|
62
|
-
let
|
|
63
|
-
|
|
64
|
+
let result = null;
|
|
65
|
+
if (param.Options.query) {
|
|
66
|
+
result = await param.Options.query.call(param.RuntimeType.query(), callData.Payload);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
result = await this.fromDbModelDefaultQueryFunction(callData, param, req);
|
|
70
|
+
}
|
|
71
|
+
return { CallData: callData, Args: result };
|
|
72
|
+
}
|
|
73
|
+
fromDbModelDefaultQueryFunction(callData, param, req) {
|
|
74
|
+
let pkValue = null;
|
|
75
|
+
const field = param.Options.field ?? param.Name;
|
|
76
|
+
switch (param.Options.paramType) {
|
|
64
77
|
case http_1.ParameterType.FromQuery:
|
|
65
|
-
|
|
78
|
+
pkValue = req.query[field];
|
|
66
79
|
break;
|
|
67
80
|
case http_1.ParameterType.FromBody:
|
|
68
|
-
|
|
81
|
+
pkValue = req.body[field];
|
|
69
82
|
break;
|
|
70
83
|
case http_1.ParameterType.FromHeader:
|
|
71
|
-
|
|
84
|
+
pkValue = req.headers[field.toLowerCase()];
|
|
72
85
|
break;
|
|
73
86
|
case http_1.ParameterType.FromParams:
|
|
74
87
|
default:
|
|
75
|
-
|
|
88
|
+
pkValue = req.params[field];
|
|
76
89
|
break;
|
|
77
90
|
}
|
|
78
|
-
|
|
79
|
-
|
|
91
|
+
const query = param.RuntimeType['query']();
|
|
92
|
+
const descriptor = (0, orm_1.extractModelDescriptor)(param.RuntimeType);
|
|
93
|
+
query.select('*');
|
|
94
|
+
query.where(descriptor.PrimaryKey, pkValue);
|
|
95
|
+
/**
|
|
96
|
+
* Checks BelongsToRelations
|
|
97
|
+
*/
|
|
98
|
+
for (const [, v] of descriptor.Relations) {
|
|
99
|
+
// if its one-to-one relations ( belongsTo)
|
|
100
|
+
// check if we have same field in route param list
|
|
101
|
+
// If exists, we assume that we want parent ( owner of this model )
|
|
102
|
+
if (v.Type === orm_1.RelationType.One) {
|
|
103
|
+
const args = callData.Payload?.Param?.Args;
|
|
104
|
+
if (args) {
|
|
105
|
+
const keys = Object.keys(args);
|
|
106
|
+
const key = keys.find((k) => {
|
|
107
|
+
return k.toLowerCase() === v.Name.toLowerCase() || k.toLowerCase() === `_${v.Name.toLowerCase()}`;
|
|
108
|
+
});
|
|
109
|
+
if (key) {
|
|
110
|
+
if (callData.Payload.Param.Args[key]) {
|
|
111
|
+
query.where(v.ForeignKey, callData.Payload.Param.Args[key]);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
throw new exceptions_1.InvalidArgument(`no key for relation ${v.Name} was provided`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
80
119
|
}
|
|
81
|
-
|
|
82
|
-
|
|
120
|
+
/**
|
|
121
|
+
* Checks include field
|
|
122
|
+
*/
|
|
123
|
+
if (callData.Payload?.Query?.Args?.include || callData.Payload?.Query?.Args?._include) {
|
|
124
|
+
query.populate(callData.Payload.Query.Args.include ?? callData.Payload.Query.Args._include);
|
|
125
|
+
}
|
|
126
|
+
return query.firstOrThrow(new orm_1.OrmNotFoundException());
|
|
83
127
|
}
|
|
84
128
|
};
|
|
85
129
|
exports.FromDbModel = FromDbModel;
|
|
@@ -109,8 +153,8 @@ function AsModel(field, type) {
|
|
|
109
153
|
return (0, http_1.Route)((0, http_1.Parameter)('AsDbModel', null, { field, type }));
|
|
110
154
|
}
|
|
111
155
|
exports.AsModel = AsModel;
|
|
112
|
-
function FromModel(
|
|
113
|
-
return (0, http_1.Route)((0, http_1.Parameter)('FromDbModel', null, {
|
|
156
|
+
function FromModel(options) {
|
|
157
|
+
return (0, http_1.Route)((0, http_1.Parameter)('FromDbModel', null, { options }));
|
|
114
158
|
}
|
|
115
159
|
exports.FromModel = FromModel;
|
|
116
160
|
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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Class } from '@spinajs/di';
|
|
2
|
-
import { ModelBase, SortOrder } from '@spinajs/orm';
|
|
2
|
+
import { ModelBase, SelectQueryBuilder, SortOrder } from '@spinajs/orm';
|
|
3
3
|
export declare class JsonApiIncomingObject {
|
|
4
4
|
data: {
|
|
5
5
|
type: string;
|
|
@@ -26,5 +26,31 @@ export interface IFilter {
|
|
|
26
26
|
Operator: FilterableOperators;
|
|
27
27
|
Value: any;
|
|
28
28
|
}
|
|
29
|
+
export interface FromModelOptions<T extends ModelBase> {
|
|
30
|
+
/**
|
|
31
|
+
* Optiona route/param/body field for primary key
|
|
32
|
+
* If not set , model primary key is used
|
|
33
|
+
*/
|
|
34
|
+
field?: string;
|
|
35
|
+
/**
|
|
36
|
+
* From where to get primary key value
|
|
37
|
+
* Eg. body, query, param, header etc.
|
|
38
|
+
*
|
|
39
|
+
* If not set, param is used
|
|
40
|
+
*/
|
|
41
|
+
paramType?: string;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* Callback on query builder before model is fetched from DB
|
|
45
|
+
*
|
|
46
|
+
* It allows to modify query with data passed to route.
|
|
47
|
+
* If not set it check for include, model owner ( if has @BelongsTo field marked) etc.
|
|
48
|
+
*
|
|
49
|
+
* @param this
|
|
50
|
+
* @param routeParams passed route params to query
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
query?: (this: SelectQueryBuilder<T>, routeParams: any) => SelectQueryBuilder;
|
|
54
|
+
}
|
|
29
55
|
export type FilterableOperators = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'in' | 'nin' | 'between' | 'isnull' | 'notnull' | 'notbetween';
|
|
30
56
|
//# 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;
|
|
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,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGxE,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,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAGD,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,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HTTP_STATUS_CODE, IResponseOptions, Response } from '@spinajs/http';
|
|
2
|
+
export declare class OrmNotFound extends Response {
|
|
3
|
+
protected options?: IResponseOptions;
|
|
4
|
+
protected _errorCode: HTTP_STATUS_CODE;
|
|
5
|
+
protected _template: string;
|
|
6
|
+
constructor(error: string | object | Promise<unknown>, options?: IResponseOptions);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=OrmNotFound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrmNotFound.d.ts","sourceRoot":"","sources":["../../../src/response-methods/OrmNotFound.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9F,qBAEa,WAAY,SAAQ,QAAQ;IAIgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAH3F,SAAS,CAAC,UAAU,mBAA8B;IAClD,SAAS,CAAC,SAAS,SAAkB;gBAEzB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAY,OAAO,CAAC,EAAE,gBAAgB;CAG5F"}
|
|
@@ -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
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.OrmNotFound = void 0;
|
|
13
|
+
const di_1 = require("@spinajs/di");
|
|
14
|
+
const http_1 = require("@spinajs/http");
|
|
15
|
+
const orm_1 = require("@spinajs/orm");
|
|
16
|
+
let OrmNotFound = class OrmNotFound extends http_1.Response {
|
|
17
|
+
constructor(error, options) {
|
|
18
|
+
super(error, options);
|
|
19
|
+
this.options = options;
|
|
20
|
+
this._errorCode = http_1.HTTP_STATUS_CODE.NOT_FOUND;
|
|
21
|
+
this._template = 'notFound.pug';
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.OrmNotFound = OrmNotFound;
|
|
25
|
+
exports.OrmNotFound = OrmNotFound = __decorate([
|
|
26
|
+
(0, http_1.HandleException)([orm_1.OrmNotFoundException]),
|
|
27
|
+
(0, di_1.Injectable)(http_1.Response),
|
|
28
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
29
|
+
], OrmNotFound);
|
|
30
|
+
//# sourceMappingURL=OrmNotFound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrmNotFound.js","sourceRoot":"","sources":["../../../src/response-methods/OrmNotFound.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAyC;AACzC,wCAA8F;AAC9F,sCAAoD;AAI7C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,eAAQ;IAIvC,YAAY,KAAyC,EAAY,OAA0B;QACzF,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QADyC,YAAO,GAAP,OAAO,CAAmB;QAHjF,eAAU,GAAG,uBAAgB,CAAC,SAAS,CAAC;QACxC,cAAS,GAAG,cAAc,CAAC;IAIrC,CAAC;CACF,CAAA;AAPY,kCAAW;sBAAX,WAAW;IAFvB,IAAA,sBAAe,EAAC,CAAC,0BAAoB,CAAC,CAAC;IACvC,IAAA,eAAU,EAAC,eAAQ,CAAC;;GACR,WAAW,CAOvB"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Orm, ModelBase } from '@spinajs/orm';
|
|
2
2
|
import { IRouteParameter, IRouteCall, ParameterType, ArgHydrator, Request as sRequest, RouteArgs } from '@spinajs/http';
|
|
3
3
|
import { IContainer, Bootstrapper } from '@spinajs/di';
|
|
4
|
-
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
4
|
+
import { FromModelOptions } from './interfaces.js';
|
|
5
|
+
export * from './interfaces.js';
|
|
6
|
+
export * from './model.js';
|
|
7
|
+
export * from './decorators.js';
|
|
7
8
|
export * from './extension.js';
|
|
8
|
-
export * from
|
|
9
|
+
export * from './route-arg.js';
|
|
9
10
|
export * from './builders.js';
|
|
10
11
|
export * from './dto.js';
|
|
12
|
+
export * from './response-methods/OrmNotFound.js';
|
|
11
13
|
export declare class AsDbModel extends RouteArgs {
|
|
12
14
|
get SupportedType(): string;
|
|
13
15
|
extract(callData: IRouteCall, param: IRouteParameter, req: sRequest): Promise<{
|
|
@@ -24,12 +26,13 @@ export declare class FromDbModel extends RouteArgs {
|
|
|
24
26
|
CallData: IRouteCall;
|
|
25
27
|
Args: any;
|
|
26
28
|
}>;
|
|
29
|
+
protected fromDbModelDefaultQueryFunction(callData: IRouteCall, param: IRouteParameter<FromModelOptions<ModelBase>>, req: sRequest): Promise<any>;
|
|
27
30
|
}
|
|
28
31
|
export declare class DbModelHydrator extends ArgHydrator {
|
|
29
32
|
hydrate(input: any, parameter: IRouteParameter): Promise<any>;
|
|
30
33
|
}
|
|
31
34
|
export declare function AsModel(field?: string, type?: ParameterType): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
32
|
-
export declare function FromModel(
|
|
35
|
+
export declare function FromModel(options?: FromModelOptions<ModelBase<any>>): (target: any, propertyKey?: string | symbol, indexOrDescriptor?: number | PropertyDescriptor) => void;
|
|
33
36
|
export declare class OrmHttpBootstrapper extends Bootstrapper {
|
|
34
37
|
bootstrap(): Promise<void>;
|
|
35
38
|
}
|
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,EAAgG,MAAM,cAAc,CAAC;AAC5I,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,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mCAAmC,CAAC;AAElD,qBACa,SAAU,SAAQ,SAAS;IACtC,IAAW,aAAa,IAAI,MAAM,CAEjC;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,QAAQ;;;;CAajF;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;;;;IAYhF,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ;CA8DnI;AAED,qBAAa,eAAgB,SAAQ,WAAW;IACjC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAS3E;AAED,wBAAgB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,yGAE3D;AAED,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;CAgBxC"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -7,17 +7,19 @@ 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, OrmNotFoundException } 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
|
import { MODEL_STATIC_MIXINS } from './model.js';
|
|
14
|
-
|
|
15
|
-
export * from
|
|
16
|
-
export * from
|
|
14
|
+
import { InvalidArgument } from '@spinajs/exceptions';
|
|
15
|
+
export * from './interfaces.js';
|
|
16
|
+
export * from './model.js';
|
|
17
|
+
export * from './decorators.js';
|
|
17
18
|
export * from './extension.js';
|
|
18
|
-
export * from
|
|
19
|
+
export * from './route-arg.js';
|
|
19
20
|
export * from './builders.js';
|
|
20
21
|
export * from './dto.js';
|
|
22
|
+
export * from './response-methods/OrmNotFound.js';
|
|
21
23
|
let AsDbModel = class AsDbModel extends RouteArgs {
|
|
22
24
|
get SupportedType() {
|
|
23
25
|
return 'AsDbModel';
|
|
@@ -42,27 +44,69 @@ let FromDbModel = class FromDbModel extends RouteArgs {
|
|
|
42
44
|
return 'FromDB';
|
|
43
45
|
}
|
|
44
46
|
async extract(callData, param, req) {
|
|
45
|
-
let
|
|
46
|
-
|
|
47
|
+
let result = null;
|
|
48
|
+
if (param.Options.query) {
|
|
49
|
+
result = await param.Options.query.call(param.RuntimeType.query(), callData.Payload);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
result = await this.fromDbModelDefaultQueryFunction(callData, param, req);
|
|
53
|
+
}
|
|
54
|
+
return { CallData: callData, Args: result };
|
|
55
|
+
}
|
|
56
|
+
fromDbModelDefaultQueryFunction(callData, param, req) {
|
|
57
|
+
let pkValue = null;
|
|
58
|
+
const field = param.Options.field ?? param.Name;
|
|
59
|
+
switch (param.Options.paramType) {
|
|
47
60
|
case ParameterType.FromQuery:
|
|
48
|
-
|
|
61
|
+
pkValue = req.query[field];
|
|
49
62
|
break;
|
|
50
63
|
case ParameterType.FromBody:
|
|
51
|
-
|
|
64
|
+
pkValue = req.body[field];
|
|
52
65
|
break;
|
|
53
66
|
case ParameterType.FromHeader:
|
|
54
|
-
|
|
67
|
+
pkValue = req.headers[field.toLowerCase()];
|
|
55
68
|
break;
|
|
56
69
|
case ParameterType.FromParams:
|
|
57
70
|
default:
|
|
58
|
-
|
|
71
|
+
pkValue = req.params[field];
|
|
59
72
|
break;
|
|
60
73
|
}
|
|
61
|
-
|
|
62
|
-
|
|
74
|
+
const query = param.RuntimeType['query']();
|
|
75
|
+
const descriptor = extractModelDescriptor(param.RuntimeType);
|
|
76
|
+
query.select('*');
|
|
77
|
+
query.where(descriptor.PrimaryKey, pkValue);
|
|
78
|
+
/**
|
|
79
|
+
* Checks BelongsToRelations
|
|
80
|
+
*/
|
|
81
|
+
for (const [, v] of descriptor.Relations) {
|
|
82
|
+
// if its one-to-one relations ( belongsTo)
|
|
83
|
+
// check if we have same field in route param list
|
|
84
|
+
// If exists, we assume that we want parent ( owner of this model )
|
|
85
|
+
if (v.Type === RelationType.One) {
|
|
86
|
+
const args = callData.Payload?.Param?.Args;
|
|
87
|
+
if (args) {
|
|
88
|
+
const keys = Object.keys(args);
|
|
89
|
+
const key = keys.find((k) => {
|
|
90
|
+
return k.toLowerCase() === v.Name.toLowerCase() || k.toLowerCase() === `_${v.Name.toLowerCase()}`;
|
|
91
|
+
});
|
|
92
|
+
if (key) {
|
|
93
|
+
if (callData.Payload.Param.Args[key]) {
|
|
94
|
+
query.where(v.ForeignKey, callData.Payload.Param.Args[key]);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
throw new InvalidArgument(`no key for relation ${v.Name} was provided`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
63
102
|
}
|
|
64
|
-
|
|
65
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Checks include field
|
|
105
|
+
*/
|
|
106
|
+
if (callData.Payload?.Query?.Args?.include || callData.Payload?.Query?.Args?._include) {
|
|
107
|
+
query.populate(callData.Payload.Query.Args.include ?? callData.Payload.Query.Args._include);
|
|
108
|
+
}
|
|
109
|
+
return query.firstOrThrow(new OrmNotFoundException());
|
|
66
110
|
}
|
|
67
111
|
};
|
|
68
112
|
__decorate([
|
|
@@ -90,8 +134,8 @@ export class DbModelHydrator extends ArgHydrator {
|
|
|
90
134
|
export function AsModel(field, type) {
|
|
91
135
|
return Route(Parameter('AsDbModel', null, { field, type }));
|
|
92
136
|
}
|
|
93
|
-
export function FromModel(
|
|
94
|
-
return Route(Parameter('FromDbModel', null, {
|
|
137
|
+
export function FromModel(options) {
|
|
138
|
+
return Route(Parameter('FromDbModel', null, { options }));
|
|
95
139
|
}
|
|
96
140
|
let OrmHttpBootstrapper = class OrmHttpBootstrapper extends Bootstrapper {
|
|
97
141
|
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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Class } from '@spinajs/di';
|
|
2
|
-
import { ModelBase, SortOrder } from '@spinajs/orm';
|
|
2
|
+
import { ModelBase, SelectQueryBuilder, SortOrder } from '@spinajs/orm';
|
|
3
3
|
export declare class JsonApiIncomingObject {
|
|
4
4
|
data: {
|
|
5
5
|
type: string;
|
|
@@ -26,5 +26,31 @@ export interface IFilter {
|
|
|
26
26
|
Operator: FilterableOperators;
|
|
27
27
|
Value: any;
|
|
28
28
|
}
|
|
29
|
+
export interface FromModelOptions<T extends ModelBase> {
|
|
30
|
+
/**
|
|
31
|
+
* Optiona route/param/body field for primary key
|
|
32
|
+
* If not set , model primary key is used
|
|
33
|
+
*/
|
|
34
|
+
field?: string;
|
|
35
|
+
/**
|
|
36
|
+
* From where to get primary key value
|
|
37
|
+
* Eg. body, query, param, header etc.
|
|
38
|
+
*
|
|
39
|
+
* If not set, param is used
|
|
40
|
+
*/
|
|
41
|
+
paramType?: string;
|
|
42
|
+
/**
|
|
43
|
+
*
|
|
44
|
+
* Callback on query builder before model is fetched from DB
|
|
45
|
+
*
|
|
46
|
+
* It allows to modify query with data passed to route.
|
|
47
|
+
* If not set it check for include, model owner ( if has @BelongsTo field marked) etc.
|
|
48
|
+
*
|
|
49
|
+
* @param this
|
|
50
|
+
* @param routeParams passed route params to query
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
query?: (this: SelectQueryBuilder<T>, routeParams: any) => SelectQueryBuilder;
|
|
54
|
+
}
|
|
29
55
|
export type FilterableOperators = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'like' | 'in' | 'nin' | 'between' | 'isnull' | 'notnull' | 'notbetween';
|
|
30
56
|
//# 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;
|
|
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,kBAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGxE,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,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,KAAK,EAAE,GAAG,CAAC;CACZ;AAGD,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,MAAM,mBAAmB,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { HTTP_STATUS_CODE, IResponseOptions, Response } from '@spinajs/http';
|
|
2
|
+
export declare class OrmNotFound extends Response {
|
|
3
|
+
protected options?: IResponseOptions;
|
|
4
|
+
protected _errorCode: HTTP_STATUS_CODE;
|
|
5
|
+
protected _template: string;
|
|
6
|
+
constructor(error: string | object | Promise<unknown>, options?: IResponseOptions);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=OrmNotFound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrmNotFound.d.ts","sourceRoot":"","sources":["../../../src/response-methods/OrmNotFound.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9F,qBAEa,WAAY,SAAQ,QAAQ;IAIgB,SAAS,CAAC,OAAO,CAAC,EAAE,gBAAgB;IAH3F,SAAS,CAAC,UAAU,mBAA8B;IAClD,SAAS,CAAC,SAAS,SAAkB;gBAEzB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,EAAY,OAAO,CAAC,EAAE,gBAAgB;CAG5F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
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;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Injectable } from '@spinajs/di';
|
|
11
|
+
import { HandleException, HTTP_STATUS_CODE, Response } from '@spinajs/http';
|
|
12
|
+
import { OrmNotFoundException } from '@spinajs/orm';
|
|
13
|
+
let OrmNotFound = class OrmNotFound extends Response {
|
|
14
|
+
constructor(error, options) {
|
|
15
|
+
super(error, options);
|
|
16
|
+
this.options = options;
|
|
17
|
+
this._errorCode = HTTP_STATUS_CODE.NOT_FOUND;
|
|
18
|
+
this._template = 'notFound.pug';
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
OrmNotFound = __decorate([
|
|
22
|
+
HandleException([OrmNotFoundException]),
|
|
23
|
+
Injectable(Response),
|
|
24
|
+
__metadata("design:paramtypes", [Object, Object])
|
|
25
|
+
], OrmNotFound);
|
|
26
|
+
export { OrmNotFound };
|
|
27
|
+
//# sourceMappingURL=OrmNotFound.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OrmNotFound.js","sourceRoot":"","sources":["../../../src/response-methods/OrmNotFound.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAoB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAI7C,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,QAAQ;IAIvC,YAAY,KAAyC,EAAY,OAA0B;QACzF,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QADyC,YAAO,GAAP,OAAO,CAAmB;QAHjF,eAAU,GAAG,gBAAgB,CAAC,SAAS,CAAC;QACxC,cAAS,GAAG,cAAc,CAAC;IAIrC,CAAC;CACF,CAAA;AAPY,WAAW;IAFvB,eAAe,CAAC,CAAC,oBAAoB,CAAC,CAAC;IACvC,UAAU,CAAC,QAAQ,CAAC;;GACR,WAAW,CAOvB"}
|