@klerick/json-api-nestjs-microorm 0.1.0-beta.1 → 0.1.0-beta.10
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/CHANGELOG.md +93 -1
- package/README.md +47 -5
- package/package.json +23 -40
- package/src/index.d.ts +1 -0
- package/src/index.js +5 -0
- package/src/index.js.map +1 -0
- package/src/lib/constants/index.d.ts +5 -0
- package/src/lib/constants/index.js +9 -0
- package/src/lib/constants/index.js.map +1 -0
- package/src/lib/factory/index.d.ts +21 -0
- package/src/lib/factory/index.js +116 -0
- package/src/lib/factory/index.js.map +1 -0
- package/src/lib/index.d.ts +2 -0
- package/src/lib/index.js +6 -0
- package/src/lib/index.js.map +1 -0
- package/src/lib/micro-orm-json-api.module.d.ts +7 -0
- package/src/lib/micro-orm-json-api.module.js +50 -0
- package/src/lib/micro-orm-json-api.module.js.map +1 -0
- package/src/lib/mock-utils/entities/addresses.d.ts +12 -0
- package/src/lib/mock-utils/entities/addresses.js +87 -0
- package/src/lib/mock-utils/entities/addresses.js.map +1 -0
- package/src/lib/mock-utils/entities/comments.d.ts +15 -0
- package/src/lib/mock-utils/entities/comments.js +72 -0
- package/src/lib/mock-utils/entities/comments.js.map +1 -0
- package/src/lib/mock-utils/entities/index.d.ts +13 -0
- package/src/lib/mock-utils/entities/index.js +18 -0
- package/src/lib/mock-utils/entities/index.js.map +1 -0
- package/src/lib/mock-utils/entities/notes.d.ts +10 -0
- package/src/lib/mock-utils/entities/notes.js +64 -0
- package/src/lib/mock-utils/entities/notes.js.map +1 -0
- package/src/lib/mock-utils/entities/roles.d.ts +12 -0
- package/src/lib/mock-utils/entities/roles.js +80 -0
- package/src/lib/mock-utils/entities/roles.js.map +1 -0
- package/src/lib/mock-utils/entities/user-groups.d.ts +7 -0
- package/src/lib/mock-utils/entities/user-groups.js +37 -0
- package/src/lib/mock-utils/entities/user-groups.js.map +1 -0
- package/src/lib/mock-utils/entities/users.d.ts +23 -0
- package/src/lib/mock-utils/entities/users.js +166 -0
- package/src/lib/mock-utils/entities/users.js.map +1 -0
- package/src/lib/mock-utils/index.d.ts +23 -0
- package/src/lib/mock-utils/index.js +97 -0
- package/src/lib/mock-utils/index.js.map +1 -0
- package/src/lib/mock-utils/utils/index.d.ts +3 -0
- package/src/lib/mock-utils/utils/index.js +7 -0
- package/src/lib/mock-utils/utils/index.js.map +1 -0
- package/src/lib/mock-utils/utils/init-db.d.ts +3 -0
- package/src/lib/mock-utils/utils/init-db.js +38 -0
- package/src/lib/mock-utils/utils/init-db.js.map +1 -0
- package/src/lib/mock-utils/utils/provider-entities.d.ts +10 -0
- package/src/lib/mock-utils/utils/provider-entities.js +22 -0
- package/src/lib/mock-utils/utils/provider-entities.js.map +1 -0
- package/src/lib/mock-utils/utils/pull-data.d.ts +9 -0
- package/src/lib/mock-utils/utils/pull-data.js +115 -0
- package/src/lib/mock-utils/utils/pull-data.js.map +1 -0
- package/src/lib/orm-helper/index.d.ts +12 -0
- package/src/lib/orm-helper/index.js +183 -0
- package/src/lib/orm-helper/index.js.map +1 -0
- package/src/lib/orm-methods/delete-one/delete-one.d.ts +2 -0
- package/src/lib/orm-methods/delete-one/delete-one.js +16 -0
- package/src/lib/orm-methods/delete-one/delete-one.js.map +1 -0
- package/src/lib/orm-methods/delete-relationship/delete-relationship.d.ts +4 -0
- package/src/lib/orm-methods/delete-relationship/delete-relationship.js +40 -0
- package/src/lib/orm-methods/delete-relationship/delete-relationship.js.map +1 -0
- package/src/lib/orm-methods/get-all/get-all.d.ts +6 -0
- package/src/lib/orm-methods/get-all/get-all.js +65 -0
- package/src/lib/orm-methods/get-all/get-all.js.map +1 -0
- package/src/lib/orm-methods/get-all/get-query-for-count.d.ts +5 -0
- package/src/lib/orm-methods/get-all/get-query-for-count.js +43 -0
- package/src/lib/orm-methods/get-all/get-query-for-count.js.map +1 -0
- package/src/lib/orm-methods/get-one/get-one.d.ts +3 -0
- package/src/lib/orm-methods/get-one/get-one.js +26 -0
- package/src/lib/orm-methods/get-one/get-one.js.map +1 -0
- package/src/lib/orm-methods/get-relationship/get-relationship.d.ts +3 -0
- package/src/lib/orm-methods/get-relationship/get-relationship.js +24 -0
- package/src/lib/orm-methods/get-relationship/get-relationship.js.map +1 -0
- package/src/lib/orm-methods/index.d.ts +9 -0
- package/src/lib/orm-methods/index.js +13 -0
- package/src/lib/orm-methods/index.js.map +1 -0
- package/src/lib/orm-methods/patch-one/patch-one.d.ts +3 -0
- package/src/lib/orm-methods/patch-one/patch-one.js +40 -0
- package/src/lib/orm-methods/patch-one/patch-one.js.map +1 -0
- package/src/lib/orm-methods/patch-relationship/patch-relationship.d.ts +4 -0
- package/src/lib/orm-methods/patch-relationship/patch-relationship.js +23 -0
- package/src/lib/orm-methods/patch-relationship/patch-relationship.js.map +1 -0
- package/src/lib/orm-methods/post-one/post-one.d.ts +3 -0
- package/src/lib/orm-methods/post-one/post-one.js +16 -0
- package/src/lib/orm-methods/post-one/post-one.js.map +1 -0
- package/src/lib/orm-methods/post-relationship/post-relationship.d.ts +4 -0
- package/src/lib/orm-methods/post-relationship/post-relationship.js +21 -0
- package/src/lib/orm-methods/post-relationship/post-relationship.js.map +1 -0
- package/src/lib/service/index.d.ts +3 -0
- package/src/lib/service/index.js +7 -0
- package/src/lib/service/index.js.map +1 -0
- package/src/lib/service/micro-orm-util.service.d.ts +51 -0
- package/src/lib/service/micro-orm-util.service.js +554 -0
- package/src/lib/service/micro-orm-util.service.js.map +1 -0
- package/src/lib/service/microorm-service.d.ts +21 -0
- package/src/lib/service/microorm-service.js +121 -0
- package/src/lib/service/microorm-service.js.map +1 -0
- package/src/lib/service/mikro-orm-format.error.service.d.ts +11 -0
- package/src/lib/service/mikro-orm-format.error.service.js +95 -0
- package/src/lib/service/mikro-orm-format.error.service.js.map +1 -0
- package/src/lib/type.d.ts +3 -0
- package/src/lib/type.js +3 -0
- package/src/lib/type.js.map +1 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSortObject = getSortObject;
|
|
4
|
+
exports.getQueryForCount = getQueryForCount;
|
|
5
|
+
const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
|
|
6
|
+
function getSortObject(query) {
|
|
7
|
+
const { sort } = query;
|
|
8
|
+
const sortObject = {};
|
|
9
|
+
if (!sort)
|
|
10
|
+
return sortObject;
|
|
11
|
+
const { target = {}, ...relation } = sort;
|
|
12
|
+
for (const [filed, sortType] of json_api_nestjs_shared_1.ObjectTyped.entries(target)) {
|
|
13
|
+
Reflect.set(sortObject, filed, sortType);
|
|
14
|
+
}
|
|
15
|
+
for (const [relationName, orderConfig = {}] of json_api_nestjs_shared_1.ObjectTyped.entries(relation)) {
|
|
16
|
+
const name = relationName;
|
|
17
|
+
sortObject[name] = {};
|
|
18
|
+
for (const [field, sortType] of json_api_nestjs_shared_1.ObjectTyped.entries(orderConfig)) {
|
|
19
|
+
sortObject[name][field] = sortType;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return sortObject;
|
|
23
|
+
}
|
|
24
|
+
function getQueryForCount(query) {
|
|
25
|
+
const querySelect = this.microOrmUtilService.queryBuilder();
|
|
26
|
+
const sortObject = getSortObject(query);
|
|
27
|
+
querySelect.orderBy(Object.keys(sortObject).length > 0
|
|
28
|
+
? sortObject
|
|
29
|
+
: {
|
|
30
|
+
[this.microOrmUtilService.currentPrimaryColumn]: 'ASC',
|
|
31
|
+
});
|
|
32
|
+
const expressionArrayForTarget = this.microOrmUtilService.getFilterExpressionForTarget(query);
|
|
33
|
+
const expressionArrayForRelation = this.microOrmUtilService.getFilterExpressionForRelation(query);
|
|
34
|
+
const resultExpression = [
|
|
35
|
+
...expressionArrayForTarget,
|
|
36
|
+
...expressionArrayForRelation,
|
|
37
|
+
];
|
|
38
|
+
for (const expression of resultExpression) {
|
|
39
|
+
querySelect.andWhere(expression);
|
|
40
|
+
}
|
|
41
|
+
return querySelect;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=get-query-for-count.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-query-for-count.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-all/get-query-for-count.ts"],"names":[],"mappings":";;AAMA,sCAsBC;AAED,4CA4BC;AA1DD,4EAA8D;AAM9D,SAAgB,aAAa,CAC3B,KAAsB;IAEtB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,MAAM,UAAU,GAAuB,EAAE,CAAC;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,UAAU,CAAC;IAE7B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,IAAW,CAAC;IACjD,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,oCAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,MAAM,CAAC,YAAY,EAAE,WAAW,GAAG,EAAE,CAAC,IAAI,oCAAW,CAAC,OAAO,CAChE,QAAQ,CACT,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,YAAuC,CAAC;QACrD,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,oCAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACjE,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,gBAAgB,CAE9B,KAAsB;IAEtB,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,WAAW,CAAC,OAAO,CACjB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC;YACE,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,KAAK;SACvD,CACN,CAAC;IAEF,MAAM,wBAAwB,GAC5B,IAAI,CAAC,mBAAmB,CAAC,4BAA4B,CAAC,KAAY,CAAC,CAAC;IACtE,MAAM,0BAA0B,GAC9B,IAAI,CAAC,mBAAmB,CAAC,8BAA8B,CAAC,KAAY,CAAC,CAAC;IAExE,MAAM,gBAAgB,GAAG;QACvB,GAAG,wBAAwB;QAC3B,GAAG,0BAA0B;KAC9B,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,gBAAgB,EAAE,CAAC;QAC1C,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { QueryOne } from '@klerick/json-api-nestjs';
|
|
2
|
+
import { MicroOrmService } from '../../service';
|
|
3
|
+
export declare function getOne<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, id: number | string, query: QueryOne<E, IdKey>, additionalQueryParams?: Record<string, unknown>): Promise<E>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOne = getOne;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@mikro-orm/core");
|
|
6
|
+
async function getOne(id, query, additionalQueryParams) {
|
|
7
|
+
const queryBuilder = this.microOrmUtilService.queryBuilder().where({
|
|
8
|
+
[this.microOrmUtilService.currentPrimaryColumn]: id,
|
|
9
|
+
});
|
|
10
|
+
const resultQueryBuilder = this.microOrmUtilService.prePareQueryBuilder(queryBuilder, query);
|
|
11
|
+
if (additionalQueryParams) {
|
|
12
|
+
resultQueryBuilder.andWhere(additionalQueryParams);
|
|
13
|
+
}
|
|
14
|
+
await resultQueryBuilder.applyFilters();
|
|
15
|
+
const resultItem = await resultQueryBuilder.getSingleResult();
|
|
16
|
+
if (!resultItem) {
|
|
17
|
+
const error = {
|
|
18
|
+
code: 'invalid_arguments',
|
|
19
|
+
message: `Resource '${this.microOrmUtilService.currentAlias}' with id '${id}' does not exist`,
|
|
20
|
+
path: ['fields'],
|
|
21
|
+
};
|
|
22
|
+
throw new common_1.NotFoundException([error]);
|
|
23
|
+
}
|
|
24
|
+
return (0, core_1.wrap)(resultItem).toJSON();
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=get-one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-one/get-one.ts"],"names":[],"mappings":";;AAKA,wBAgCC;AArCD,2CAAmD;AAEnD,0CAAuC;AAGhC,KAAK,UAAU,MAAM,CAE1B,EAAmB,EACnB,KAAyB,EACzB,qBAA+C;IAE/C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC;QACjE,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CACrE,YAAY,EACZ,KAAY,CACb,CAAC;IAEF,IAAI,qBAAqB,EAAE,CAAC;QAC1B,kBAAkB,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,kBAAkB,CAAC,YAAY,EAAE,CAAC;IAExC,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,eAAe,EAAE,CAAC;IAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,IAAI,CAAC,mBAAmB,CAAC,YAAY,cAAc,EAAE,kBAAkB;YAC7F,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC;QACF,MAAM,IAAI,0BAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAA,WAAI,EAAC,UAAU,CAAC,CAAC,MAAM,EAAO,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
2
|
+
import { MicroOrmService } from '../../service';
|
|
3
|
+
export declare function getRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: MicroOrmService<E, IdKey>, id: number | string, rel: Rel): Promise<E>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRelationship = getRelationship;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const core_1 = require("@mikro-orm/core");
|
|
6
|
+
async function getRelationship(id, rel) {
|
|
7
|
+
const result = await this.microOrmUtilService
|
|
8
|
+
.queryBuilder()
|
|
9
|
+
.leftJoinAndSelect(`${this.microOrmUtilService.currentAlias}.${rel.toString()}`, rel.toString(), {}, [this.microOrmUtilService.getPrimaryNameFor(rel)])
|
|
10
|
+
.where({
|
|
11
|
+
[this.microOrmUtilService.currentPrimaryColumn]: id,
|
|
12
|
+
})
|
|
13
|
+
.getSingleResult();
|
|
14
|
+
if (!result) {
|
|
15
|
+
const error = {
|
|
16
|
+
code: 'invalid_arguments',
|
|
17
|
+
message: `Resource '${this.microOrmUtilService.currentAlias}' with id '${id}' does not exist`,
|
|
18
|
+
path: ['fields'],
|
|
19
|
+
};
|
|
20
|
+
throw new common_1.NotFoundException([error]);
|
|
21
|
+
}
|
|
22
|
+
return (0, core_1.serialize)(result, { forceObject: true });
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=get-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/get-relationship/get-relationship.ts"],"names":[],"mappings":";;AAOA,0CA4BC;AAlCD,2CAAmD;AAEnD,0CAA4C;AAIrC,KAAK,UAAU,eAAe,CAIF,EAAmB,EAAE,GAAQ;IAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB;SAC1C,YAAY,EAAE;SACd,iBAAiB,CAChB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,EAC5D,GAAG,CAAC,QAAQ,EAAE,EACd,EAAE,EACF,CAAC,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAU,CAAC,CAAC,CACzD;SACA,KAAK,CAAC;QACL,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC;SACD,eAAe,EAAE,CAAC;IAErB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,IAAI,CAAC,mBAAmB,CAAC,YAAY,cAAc,EAAE,kBAAkB;YAC7F,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC;QACF,MAAM,IAAI,0BAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAA,gBAAS,EAAC,MAAM,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAiB,CAAC;AAClE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './get-all/get-all';
|
|
2
|
+
export * from './get-one/get-one';
|
|
3
|
+
export * from './delete-one/delete-one';
|
|
4
|
+
export * from './post-one/post-one';
|
|
5
|
+
export * from './patch-one/patch-one';
|
|
6
|
+
export * from './get-relationship/get-relationship';
|
|
7
|
+
export * from './delete-relationship/delete-relationship';
|
|
8
|
+
export * from './post-relationship/post-relationship';
|
|
9
|
+
export * from './patch-relationship/patch-relationship';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./get-all/get-all"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./get-one/get-one"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./delete-one/delete-one"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./post-one/post-one"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./patch-one/patch-one"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./get-relationship/get-relationship"), exports);
|
|
10
|
+
tslib_1.__exportStar(require("./delete-relationship/delete-relationship"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./post-relationship/post-relationship"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./patch-relationship/patch-relationship"), exports);
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,4DAAkC;AAClC,kEAAwC;AACxC,8DAAoC;AACpC,gEAAsC;AACtC,8EAAoD;AACpD,oFAA0D;AAC1D,gFAAsD;AACtD,kFAAwD"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { PatchData } from '@klerick/json-api-nestjs';
|
|
2
|
+
import { MicroOrmService } from '../../service';
|
|
3
|
+
export declare function patchOne<E extends object, IdKey extends string>(this: MicroOrmService<E, IdKey>, id: number | string, inputData: PatchData<E, IdKey>): Promise<E>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.patchOne = patchOne;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
|
|
6
|
+
async function patchOne(id, inputData) {
|
|
7
|
+
const { id: idBody, attributes, relationships } = inputData;
|
|
8
|
+
if (`${id}` !== idBody) {
|
|
9
|
+
const error = {
|
|
10
|
+
code: 'invalid_arguments',
|
|
11
|
+
message: `Data 'id' must be equal to url param`,
|
|
12
|
+
path: ['data', 'id'],
|
|
13
|
+
};
|
|
14
|
+
throw new common_1.UnprocessableEntityException([error]);
|
|
15
|
+
}
|
|
16
|
+
const existEntity = await this.microOrmUtilService
|
|
17
|
+
.queryBuilder()
|
|
18
|
+
.where({
|
|
19
|
+
[this.microOrmUtilService.currentPrimaryColumn]: id,
|
|
20
|
+
})
|
|
21
|
+
.getSingleResult();
|
|
22
|
+
if (!existEntity) {
|
|
23
|
+
const error = {
|
|
24
|
+
code: 'invalid_arguments',
|
|
25
|
+
message: `Resource '${this.microOrmUtilService.currentAlias}' with id '${id}' does not exist`,
|
|
26
|
+
path: ['data', 'id'],
|
|
27
|
+
};
|
|
28
|
+
throw new common_1.NotFoundException([error]);
|
|
29
|
+
}
|
|
30
|
+
if (attributes) {
|
|
31
|
+
const attrTarget = this.microOrmUtilService.createEntity(attributes);
|
|
32
|
+
for (const [props, val] of json_api_nestjs_shared_1.ObjectTyped.entries(attrTarget)) {
|
|
33
|
+
if (!(props in attributes))
|
|
34
|
+
continue;
|
|
35
|
+
Reflect.set(existEntity, props, val);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return this.microOrmUtilService.saveEntity(existEntity, relationships);
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=patch-one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/patch-one/patch-one.ts"],"names":[],"mappings":";;AAQA,4BA0CC;AAlDD,2CAGwB;AACxB,4EAA8D;AAIvD,KAAK,UAAU,QAAQ,CAE5B,EAAmB,EACnB,SAA8B;IAE9B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,SAAS,CAAC;IAE5D,IAAI,GAAG,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;SACrB,CAAC;QAEF,MAAM,IAAI,qCAA4B,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB;SAC/C,YAAY,EAAE;SACd,KAAK,CAAC;QACL,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,EAAE,EAAE;KACpD,CAAC;SACD,eAAe,EAAE,CAAC;IAErB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,KAAK,GAAuB;YAChC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,aAAa,IAAI,CAAC,mBAAmB,CAAC,YAAY,cAAc,EAAE,kBAAkB;YAC7F,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;SACrB,CAAC;QACF,MAAM,IAAI,0BAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,UAAiB,CAAC,CAAC;QAE5E,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,oCAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,CAAC,KAAK,IAAI,UAAU,CAAC;gBAAE,SAAS;YACrC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,WAAW,EAAE,aAAoB,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
2
|
+
import { PatchRelationshipData } from '@klerick/json-api-nestjs';
|
|
3
|
+
import { MicroOrmService } from '../../service';
|
|
4
|
+
export declare function patchRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: MicroOrmService<E, IdKey>, id: number | string, rel: Rel, input: PatchRelationshipData): Promise<E>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.patchRelationship = patchRelationship;
|
|
4
|
+
const get_relationship_1 = require("../get-relationship/get-relationship");
|
|
5
|
+
async function patchRelationship(id, rel, input) {
|
|
6
|
+
const idsResult = await this.microOrmUtilService.validateRelationInputData(rel, input);
|
|
7
|
+
const currentEntityRef = this.microOrmUtilService.entityManager.getReference(this.microOrmUtilService.entity, id);
|
|
8
|
+
const relEntity = this.microOrmUtilService.getRelation(rel).entity();
|
|
9
|
+
if (Array.isArray(idsResult)) {
|
|
10
|
+
const relRef = idsResult.map((i) => this.microOrmUtilService.entityManager.getReference(relEntity, i));
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
currentEntityRef[rel].removeAll();
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
currentEntityRef[rel].add(...relRef);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
currentEntityRef[rel] = this.microOrmUtilService.entityManager.getReference(relEntity, idsResult);
|
|
19
|
+
}
|
|
20
|
+
await this.microOrmUtilService.entityManager.flush();
|
|
21
|
+
return get_relationship_1.getRelationship.call(this, id, rel);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=patch-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/patch-relationship/patch-relationship.ts"],"names":[],"mappings":";;AAKA,8CA4CC;AA/CD,2EAAuE;AAGhE,KAAK,UAAU,iBAAiB,CAMrC,EAAmB,EACnB,GAAQ,EACR,KAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CACxE,GAAU,EACV,KAAK,CACN,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAC/B,EAAS,CACV,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAU,CAAC,CAAC,MAAM,EAAE,CAAC;IAE5E,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,CAAQ,CAAC,CACzE,CAAC;QACF,aAAa;QACb,gBAAgB,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;QAClC,aAAa;QACb,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,aAAa;QACb,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CACzE,SAAS,EACT,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAErD,OAAO,kCAAe,CAAC,IAAI,CAIzB,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.postOne = postOne;
|
|
4
|
+
async function postOne(inputData) {
|
|
5
|
+
const { attributes, relationships, id } = inputData;
|
|
6
|
+
const idObject = id
|
|
7
|
+
? { [this.microOrmUtilService.currentPrimaryColumn.toString()]: id }
|
|
8
|
+
: {};
|
|
9
|
+
const attributesObject = {
|
|
10
|
+
...attributes,
|
|
11
|
+
...idObject,
|
|
12
|
+
};
|
|
13
|
+
const entityIns = this.microOrmUtilService.createEntity(attributesObject);
|
|
14
|
+
return this.microOrmUtilService.saveEntity(entityIns, relationships);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=post-one.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/post-one/post-one.ts"],"names":[],"mappings":";;AAKA,0BAkBC;AAlBM,KAAK,UAAU,OAAO,CAE3B,SAA6B;IAE7B,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC;IAEpD,MAAM,QAAQ,GAAG,EAAE;QACjB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE;QACpE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG;QACvB,GAAG,UAAU;QACb,GAAG,QAAQ;KACgB,CAAC;IAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IAE1E,OAAO,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
2
|
+
import { PostRelationshipData } from '@klerick/json-api-nestjs';
|
|
3
|
+
import { MicroOrmService } from '../../service';
|
|
4
|
+
export declare function postRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: MicroOrmService<E, IdKey>, id: number | string, rel: Rel, input: PostRelationshipData): Promise<E>;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.postRelationship = postRelationship;
|
|
4
|
+
const get_relationship_1 = require("../get-relationship/get-relationship");
|
|
5
|
+
async function postRelationship(id, rel, input) {
|
|
6
|
+
const idsResult = await this.microOrmUtilService.validateRelationInputData(rel, input);
|
|
7
|
+
const currentEntityRef = this.microOrmUtilService.entityManager.getReference(this.microOrmUtilService.entity, id);
|
|
8
|
+
const relEntity = this.microOrmUtilService.getRelation(rel).entity();
|
|
9
|
+
if (Array.isArray(idsResult)) {
|
|
10
|
+
const relRef = idsResult.map((i) => this.microOrmUtilService.entityManager.getReference(relEntity, i));
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
currentEntityRef[rel].add(...relRef);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
// @ts-ignore
|
|
16
|
+
currentEntityRef[rel] = this.microOrmUtilService.entityManager.getReference(relEntity, idsResult);
|
|
17
|
+
}
|
|
18
|
+
await this.microOrmUtilService.entityManager.flush();
|
|
19
|
+
return get_relationship_1.getRelationship.call(this, id, rel);
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=post-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/orm-methods/post-relationship/post-relationship.ts"],"names":[],"mappings":";;AAKA,4CA2CC;AA9CD,2EAAuE;AAGhE,KAAK,UAAU,gBAAgB,CAMpC,EAAmB,EACnB,GAAQ,EACR,KAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CACxE,GAAU,EACV,KAAK,CACN,CAAC;IAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAC1E,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAC/B,EAAS,CACV,CAAC;IAEF,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAU,CAAC,CAAC,MAAM,EAAE,CAAC;IAE5E,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACjC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,CAAQ,CAAC,CACzE,CAAC;QACF,aAAa;QACb,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,aAAa;QACb,gBAAgB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CACzE,SAAS,EACT,SAAgB,CACjB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAErD,OAAO,kCAAe,CAAC,IAAI,CAIzB,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./microorm-service"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./mikro-orm-format.error.service"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./micro-orm-util.service"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-microorm/src/lib/service/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,2EAAiD;AACjD,mEAAyC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { EntityClass, EntityKey, EntityProperty, type QBFilterQuery, QBQueryOrderMap, EntityData, Collection } from '@mikro-orm/core';
|
|
2
|
+
import { type Knex, SqlEntityManager, QueryBuilder } from '@mikro-orm/knex';
|
|
3
|
+
import { Query, QueryOne, Relationships } from '@klerick/json-api-nestjs';
|
|
4
|
+
import { RelationKeys } from '@klerick/json-api-nestjs-shared';
|
|
5
|
+
export type InputValidateData = {
|
|
6
|
+
type: string;
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
export type ValidateReturn<T> = T extends unknown[] ? string[] : T extends null ? null : string;
|
|
10
|
+
type RelationshipsResult<E extends object> = {
|
|
11
|
+
[K in RelationKeys<E>]: E[K] extends object ? E[K] extends Collection<E[K]> ? E[K] : E[K] | null : never;
|
|
12
|
+
};
|
|
13
|
+
export declare class MicroOrmUtilService<E extends object, IdKey extends string = 'id'> {
|
|
14
|
+
readonly entityManager: SqlEntityManager;
|
|
15
|
+
private entityRepository;
|
|
16
|
+
readonly entity: EntityClass<E>;
|
|
17
|
+
private _relationsName;
|
|
18
|
+
private _relationMap;
|
|
19
|
+
private _relationPropsMap;
|
|
20
|
+
get relationsName(): EntityKey<E, false>[];
|
|
21
|
+
getRelationProps(entity: EntityClass<E>): EntityKey<E, false>[];
|
|
22
|
+
getRelation(name: EntityKey<E, false>): EntityProperty<E, any>;
|
|
23
|
+
get currentAlias(): string;
|
|
24
|
+
get metadata(): import("@mikro-orm/core").EntityMetadata<E>;
|
|
25
|
+
get currentPrimaryColumn(): EntityKey<E, false>;
|
|
26
|
+
get defaultOrder(): QBQueryOrderMap<E>;
|
|
27
|
+
getAliasForEntity<T = E>(entity: EntityClass<T>): string;
|
|
28
|
+
getAliasForPivotTable<T = E>(relName: keyof T): string;
|
|
29
|
+
getAliasForPivotTable<T = E>(entity: EntityClass<T>, relName: keyof T): string;
|
|
30
|
+
queryBuilder<T extends object = E>(entity: EntityClass<T>, alias: string): QueryBuilder<T, typeof alias>;
|
|
31
|
+
queryBuilder<T extends object = E>(entity: EntityClass<T>): QueryBuilder<T, string>;
|
|
32
|
+
queryBuilder<T extends object = E>(alias: string): QueryBuilder<T, typeof alias>;
|
|
33
|
+
queryBuilder<T extends object = E>(): QueryBuilder<T, string>;
|
|
34
|
+
getFilterExpressionForTarget<T extends object = E>(query: Query<T, IdKey>): QBFilterQuery<T>[];
|
|
35
|
+
getConditionalForJoin<T extends object = E>(query: Query<T, IdKey>, key: string): QBFilterQuery;
|
|
36
|
+
private extractedResultOperand;
|
|
37
|
+
getFilterExpressionForRelation<T extends object = E>(query: Query<T, IdKey>): QBFilterQuery<T>[];
|
|
38
|
+
getKnex(): Knex<E, E[]>;
|
|
39
|
+
prePareQueryBuilder(queryBuilder: QueryBuilder<E>, query: Query<E, IdKey> | QueryOne<E, IdKey>): QueryBuilder<E>;
|
|
40
|
+
getPrimaryNameFor(rel: RelationKeys<E, IdKey>): EntityKey<E, false>;
|
|
41
|
+
private getFilterObject;
|
|
42
|
+
private getSubQueryForRelation;
|
|
43
|
+
private getInverseFieldForManyToMany;
|
|
44
|
+
createEntity(params: EntityData<E>): E;
|
|
45
|
+
asyncIterateFindRelationships(relationships: NonNullable<Relationships<E, IdKey>>): AsyncGenerator<RelationshipsResult<E>>;
|
|
46
|
+
saveEntity(targetInstance: E, relationships?: Relationships<E, IdKey>): Promise<E>;
|
|
47
|
+
validateRelationInputData<Rel extends RelationKeys<E, IdKey>, In extends InputValidateData | InputValidateData[]>(rel: Rel, inputData: In): Promise<ValidateReturn<In>>;
|
|
48
|
+
validateRelationInputData<Rel extends RelationKeys<E, IdKey>, In extends InputValidateData | InputValidateData[]>(rel: Rel, inputData: In): Promise<ValidateReturn<In>>;
|
|
49
|
+
validateRelationInputData<Rel extends RelationKeys<E, IdKey>, In extends null | InputValidateData | InputValidateData[]>(rel: Rel, inputData: In): Promise<ValidateReturn<In>>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|