@klerick/json-api-nestjs-typeorm 0.1.0-beta.1 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/package.json +25 -30
  3. package/src/index.d.ts +1 -0
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -0
  6. package/src/lib/constants/index.d.ts +6 -0
  7. package/src/lib/constants/index.js +10 -0
  8. package/src/lib/constants/index.js.map +1 -0
  9. package/src/lib/factory/index.d.ts +20 -0
  10. package/src/lib/factory/index.js +127 -0
  11. package/src/lib/factory/index.js.map +1 -0
  12. package/src/lib/index.d.ts +2 -0
  13. package/src/lib/index.js +6 -0
  14. package/src/lib/index.js.map +1 -0
  15. package/src/lib/orm-helper/index.d.ts +10 -0
  16. package/src/lib/orm-helper/index.js +151 -0
  17. package/src/lib/orm-helper/index.js.map +1 -0
  18. package/src/lib/orm-methods/delete-one/delete-one.d.ts +2 -0
  19. package/src/lib/orm-methods/delete-one/delete-one.js +17 -0
  20. package/src/lib/orm-methods/delete-one/delete-one.js.map +1 -0
  21. package/src/lib/orm-methods/delete-relationship/delete-relationship.d.ts +4 -0
  22. package/src/lib/orm-methods/delete-relationship/delete-relationship.js +18 -0
  23. package/src/lib/orm-methods/delete-relationship/delete-relationship.js.map +1 -0
  24. package/src/lib/orm-methods/get-all/get-all.d.ts +4 -0
  25. package/src/lib/orm-methods/get-all/get-all.js +181 -0
  26. package/src/lib/orm-methods/get-all/get-all.js.map +1 -0
  27. package/src/lib/orm-methods/get-one/get-one.d.ts +4 -0
  28. package/src/lib/orm-methods/get-one/get-one.js +59 -0
  29. package/src/lib/orm-methods/get-one/get-one.js.map +1 -0
  30. package/src/lib/orm-methods/get-relationship/get-relationship.d.ts +3 -0
  31. package/src/lib/orm-methods/get-relationship/get-relationship.js +35 -0
  32. package/src/lib/orm-methods/get-relationship/get-relationship.js.map +1 -0
  33. package/src/lib/orm-methods/index.d.ts +9 -0
  34. package/src/lib/orm-methods/index.js +22 -0
  35. package/src/lib/orm-methods/index.js.map +1 -0
  36. package/src/lib/orm-methods/patch-one/patch-one.d.ts +4 -0
  37. package/src/lib/orm-methods/patch-one/patch-one.js +50 -0
  38. package/src/lib/orm-methods/patch-one/patch-one.js.map +1 -0
  39. package/src/lib/orm-methods/patch-relationship/patch-relationship.d.ts +4 -0
  40. package/src/lib/orm-methods/patch-relationship/patch-relationship.js +23 -0
  41. package/src/lib/orm-methods/patch-relationship/patch-relationship.js.map +1 -0
  42. package/src/lib/orm-methods/post-one/post-one.d.ts +4 -0
  43. package/src/lib/orm-methods/post-one/post-one.js +28 -0
  44. package/src/lib/orm-methods/post-one/post-one.js.map +1 -0
  45. package/src/lib/orm-methods/post-relationship/post-relationship.d.ts +4 -0
  46. package/src/lib/orm-methods/post-relationship/post-relationship.js +19 -0
  47. package/src/lib/orm-methods/post-relationship/post-relationship.js.map +1 -0
  48. package/src/lib/service/index.d.ts +3 -0
  49. package/src/lib/service/index.js +7 -0
  50. package/src/lib/service/index.js.map +1 -0
  51. package/src/lib/service/type-orm-format.error.service.d.ts +21 -0
  52. package/src/lib/service/type-orm-format.error.service.js +122 -0
  53. package/src/lib/service/type-orm-format.error.service.js.map +1 -0
  54. package/src/lib/service/type-orm.service.d.ts +20 -0
  55. package/src/lib/service/type-orm.service.js +61 -0
  56. package/src/lib/service/type-orm.service.js.map +1 -0
  57. package/src/lib/service/typeorm-utils.service.d.ts +66 -0
  58. package/src/lib/service/typeorm-utils.service.js +450 -0
  59. package/src/lib/service/typeorm-utils.service.js.map +1 -0
  60. package/src/lib/type-orm-json-api.module.d.ts +7 -0
  61. package/src/lib/type-orm-json-api.module.js +49 -0
  62. package/src/lib/type-orm-json-api.module.js.map +1 -0
  63. package/src/lib/type.d.ts +28 -0
  64. package/src/lib/type.js +28 -0
  65. package/src/lib/type.js.map +1 -0
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAll = getAll;
4
+ const json_api_nestjs_1 = require("@klerick/json-api-nestjs");
5
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
6
+ const constants_1 = require("../../constants");
7
+ function getSortObject(params, relationName) {
8
+ return Object.entries(params).reduce((acum, [props, sort]) => {
9
+ acum[`${relationName}.${props}`] = `${sort}` === json_api_nestjs_1.ASC ? json_api_nestjs_1.ASC : json_api_nestjs_1.DESC;
10
+ return acum;
11
+ }, {});
12
+ }
13
+ async function getAll(query) {
14
+ const { fields, include, sort, page } = query;
15
+ let defaultSortObject = {
16
+ [`${this.typeormUtilsService.currentAlias}.${this.typeormUtilsService.currentPrimaryColumn.toString()}`]: json_api_nestjs_1.ASC,
17
+ };
18
+ const includeForCountQuery = new Set();
19
+ const selectFields = new Set();
20
+ const includeRel = new Set();
21
+ const skip = (page.number - 1) * page.size;
22
+ const expressionArrayForTarget = this.typeormUtilsService.getFilterExpressionForTarget(query);
23
+ const expressionArrayForRelation = this.typeormUtilsService.getFilterExpressionForRelation(query);
24
+ const expressionArray = [
25
+ ...expressionArrayForTarget,
26
+ ...expressionArrayForRelation,
27
+ ];
28
+ const sortCast = sort;
29
+ if (sortCast) {
30
+ const { target, ...relation } = sortCast;
31
+ const targetOrder = getSortObject(target || {}, this.typeormUtilsService.currentAlias);
32
+ const relOrder = Object.entries(relation || {}).reduce((acum, [name, order]) => {
33
+ return {
34
+ ...acum,
35
+ ...getSortObject(order || {}, this.typeormUtilsService.getAliasForRelation(name)),
36
+ };
37
+ }, {});
38
+ const resultOrder = {
39
+ ...targetOrder,
40
+ ...relOrder,
41
+ };
42
+ if (Object.keys(resultOrder).length > 0) {
43
+ defaultSortObject = resultOrder;
44
+ }
45
+ for (const item of json_api_nestjs_shared_1.ObjectTyped.keys(relation)) {
46
+ includeForCountQuery.add(item);
47
+ }
48
+ }
49
+ const queryBuilderForCount = this.repository
50
+ .createQueryBuilder(this.typeormUtilsService.currentAlias)
51
+ .select(this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn), this.typeormUtilsService.currentPrimaryColumn.toString())
52
+ .orderBy(defaultSortObject);
53
+ for (const i in expressionArray) {
54
+ const { params, alias, selectInclude, expression } = expressionArray[i];
55
+ const expressionTempArray = [];
56
+ if (alias) {
57
+ expressionTempArray.push(alias);
58
+ }
59
+ expressionTempArray.push(expression);
60
+ queryBuilderForCount[i === '0' ? 'where' : 'andWhere'](expressionTempArray.join(' '));
61
+ if (params) {
62
+ if (Array.isArray(params)) {
63
+ for (const { name, val } of params) {
64
+ queryBuilderForCount.setParameters({ [name]: val });
65
+ }
66
+ }
67
+ else {
68
+ queryBuilderForCount.setParameters({ [params.name]: params.val });
69
+ }
70
+ }
71
+ if (selectInclude)
72
+ includeForCountQuery.add(selectInclude);
73
+ }
74
+ for (const rel of [...includeForCountQuery]) {
75
+ const currentIncludeAlias = this.typeormUtilsService.getAliasForRelation(rel);
76
+ queryBuilderForCount.leftJoin(this.typeormUtilsService.getAliasPath(rel), currentIncludeAlias);
77
+ }
78
+ const count = await queryBuilderForCount.getCount();
79
+ const meta = {
80
+ pageNumber: page.number,
81
+ totalItems: count,
82
+ pageSize: page.size,
83
+ };
84
+ if (count === 0) {
85
+ return {
86
+ meta,
87
+ data: [],
88
+ };
89
+ }
90
+ const aliasForIdResultPagination = this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn, constants_1.ALIAS_FOR_PAGINATION, '_');
91
+ const resultIds = await this.repository
92
+ .createQueryBuilder(constants_1.ALIAS_FOR_PAGINATION)
93
+ .select(this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn, constants_1.ALIAS_FOR_PAGINATION), aliasForIdResultPagination)
94
+ .innerJoin(`(${queryBuilderForCount.offset(skip).limit(page.size).getQuery()})`, constants_1.SUB_QUERY_ALIAS_FOR_PAGINATION, `${this.typeormUtilsService.getAliasPath(queryBuilderForCount.escape(this.typeormUtilsService.currentPrimaryColumn.toString()), queryBuilderForCount.escape(constants_1.SUB_QUERY_ALIAS_FOR_PAGINATION))} = ${this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn, constants_1.ALIAS_FOR_PAGINATION)}`)
95
+ .setParameters(queryBuilderForCount.getParameters())
96
+ .getRawMany();
97
+ const ids = resultIds.map((i) => i[aliasForIdResultPagination]);
98
+ if (ids.length === 0) {
99
+ return {
100
+ meta,
101
+ data: [],
102
+ };
103
+ }
104
+ if (include) {
105
+ for (const rel of include) {
106
+ includeRel.add(rel);
107
+ }
108
+ }
109
+ const fieldsCast = fields;
110
+ if (fieldsCast) {
111
+ if (include) {
112
+ for (const rel of include) {
113
+ const currentIncludeAlias = this.typeormUtilsService.getAliasForRelation(rel);
114
+ const primaryColumnName = this.typeormUtilsService.getPrimaryColumnForRel(rel);
115
+ selectFields.add(`${currentIncludeAlias}.${primaryColumnName}`);
116
+ }
117
+ }
118
+ const { target, ...other } = fieldsCast;
119
+ if (target) {
120
+ for (const item of target) {
121
+ selectFields.add(`${this.typeormUtilsService.currentAlias}.${item}`);
122
+ }
123
+ }
124
+ for (const [rel, fields] of json_api_nestjs_shared_1.ObjectTyped.entries(other)) {
125
+ const currentIncludeAlias = this.typeormUtilsService.getAliasForRelation(rel);
126
+ if (!fields)
127
+ continue;
128
+ for (const field of fields) {
129
+ selectFields.add(`${currentIncludeAlias.toString()}.${field}`);
130
+ }
131
+ }
132
+ }
133
+ const resultQuery = this.repository
134
+ .createQueryBuilder()
135
+ .orderBy(defaultSortObject);
136
+ if (selectFields.size > 0) {
137
+ resultQuery.select([...selectFields]);
138
+ }
139
+ resultQuery.whereInIds(ids);
140
+ for (const expressionItem of expressionArrayForRelation) {
141
+ const { selectInclude, alias, paramsForResult, params, expression } = expressionItem;
142
+ if (paramsForResult) {
143
+ for (const item of paramsForResult) {
144
+ resultQuery.andWhere(item);
145
+ }
146
+ }
147
+ else {
148
+ resultQuery.andWhere(`${alias} ${expression}`);
149
+ }
150
+ if (params) {
151
+ if (Array.isArray(params)) {
152
+ for (const item of params) {
153
+ resultQuery.setParameters({ [item.name]: item.val });
154
+ }
155
+ }
156
+ else {
157
+ resultQuery.setParameters({ [params.name]: params.val });
158
+ }
159
+ }
160
+ if (selectInclude)
161
+ includeRel.add(selectInclude);
162
+ }
163
+ for (const item of [...includeRel]) {
164
+ const currentIncludeAlias = this.typeormUtilsService.getAliasForRelation(item);
165
+ if (!currentIncludeAlias)
166
+ continue;
167
+ resultQuery[selectFields.size > 0 ? 'leftJoin' : 'leftJoinAndSelect'](this.typeormUtilsService.getAliasPath(item), currentIncludeAlias);
168
+ }
169
+ const resultData = await resultQuery.getMany();
170
+ const { included, data } = this.transformDataService.transformData(resultData, query);
171
+ return {
172
+ meta: {
173
+ pageNumber: page.number,
174
+ totalItems: count,
175
+ pageSize: page.size,
176
+ },
177
+ data,
178
+ ...(included ? { included } : {}),
179
+ };
180
+ }
181
+ //# sourceMappingURL=get-all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-all.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/get-all/get-all.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { QueryOne } from '@klerick/json-api-nestjs';
2
+ import { ResourceObject } from '@klerick/json-api-nestjs-shared';
3
+ import { TypeOrmService } from '../../service';
4
+ export declare function getOne<E extends object, IdKey extends string>(this: TypeOrmService<E, IdKey>, id: number | string, query: QueryOne<E, IdKey>): Promise<ResourceObject<E, 'object', null, IdKey>>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOne = getOne;
4
+ const common_1 = require("@nestjs/common");
5
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
6
+ async function getOne(id, query) {
7
+ const { include, fields } = query;
8
+ const selectFields = new Set();
9
+ const builder = this.repository.createQueryBuilder(this.typeormUtilsService.currentAlias);
10
+ if (fields) {
11
+ selectFields.add(this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn));
12
+ const { target, ...other } = fields;
13
+ if (target) {
14
+ for (const fieldItem of target) {
15
+ selectFields.add(this.typeormUtilsService.getAliasPath(fieldItem));
16
+ }
17
+ }
18
+ for (const [rel, fieldRel] of json_api_nestjs_shared_1.ObjectTyped.entries(other)) {
19
+ if (fieldRel) {
20
+ for (const itemFieldRel of fieldRel) {
21
+ selectFields.add(this.typeormUtilsService.getAliasPath(itemFieldRel, this.typeormUtilsService.getAliasForRelation(rel)));
22
+ }
23
+ }
24
+ }
25
+ }
26
+ if (include) {
27
+ for (const rel of include) {
28
+ const currentIncludeAlias = this.typeormUtilsService.getAliasForRelation(rel);
29
+ builder[fields ? 'leftJoin' : 'leftJoinAndSelect'](this.typeormUtilsService.getAliasPath(rel), currentIncludeAlias);
30
+ if (fields) {
31
+ selectFields.add(this.typeormUtilsService.getAliasPath(this.typeormUtilsService.getPrimaryColumnForRel(rel), currentIncludeAlias));
32
+ }
33
+ }
34
+ }
35
+ if (selectFields.size > 0) {
36
+ builder.select([...selectFields]);
37
+ }
38
+ const paramsId = 'paramsId';
39
+ const result = await builder
40
+ .where(`${this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn)} = :${paramsId}`, {
41
+ [paramsId]: id,
42
+ })
43
+ .getOne();
44
+ if (!result) {
45
+ const error = {
46
+ code: 'invalid_arguments',
47
+ message: `Resource '${this.typeormUtilsService.currentAlias}' with id '${id}' does not exist`,
48
+ path: ['fields'],
49
+ };
50
+ throw new common_1.NotFoundException([error]);
51
+ }
52
+ const { included, data } = this.transformDataService.transformData(result, query);
53
+ return {
54
+ meta: {},
55
+ data,
56
+ ...(included ? { included } : {}),
57
+ };
58
+ }
59
+ //# sourceMappingURL=get-one.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/get-one/get-one.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { RelationKeys, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
2
+ import { TypeOrmService } from '../../service';
3
+ export declare function getRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: TypeOrmService<E, IdKey>, id: number | string, rel: Rel): Promise<ResourceObjectRelationships<E, IdKey, Rel>>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRelationship = getRelationship;
4
+ const common_1 = require("@nestjs/common");
5
+ async function getRelationship(id, rel) {
6
+ const paramsId = 'paramsId';
7
+ const result = (await this.repository
8
+ .createQueryBuilder()
9
+ .select([
10
+ this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn),
11
+ this.typeormUtilsService.getAliasPath(this.typeormUtilsService.getPrimaryColumnForRel(rel), this.typeormUtilsService.getAliasForRelation(rel)),
12
+ ])
13
+ .where(`
14
+ ${this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn)} = :paramsId
15
+ `)
16
+ .leftJoin(this.typeormUtilsService.getAliasPath(rel.toString()), this.typeormUtilsService.getAliasForRelation(rel))
17
+ .setParameters({
18
+ [paramsId]: id,
19
+ })
20
+ .getOne());
21
+ if (!result) {
22
+ const error = {
23
+ code: 'invalid_arguments',
24
+ message: `Resource '${this.typeormUtilsService.currentAlias}' with id '${id}' does not exist`,
25
+ path: ['fields'],
26
+ };
27
+ throw new common_1.NotFoundException([error]);
28
+ }
29
+ const data = this.transformDataService.transformRel(result, rel);
30
+ return {
31
+ meta: {},
32
+ data,
33
+ };
34
+ }
35
+ //# sourceMappingURL=get-relationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/get-relationship/get-relationship.ts"],"names":[],"mappings":";;AAQA,0CAmDC;AA3DD,2CAAmD;AAQ5C,KAAK,UAAU,eAAe,CAMnC,EAAmB,EACnB,GAAQ;IAER,MAAM,QAAQ,GAAG,UAAU,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU;SAClC,kBAAkB,EAAE;SACpB,MAAM,CAAC;QACN,IAAI,CAAC,mBAAmB,CAAC,YAAY,CACnC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAC9C;QACD,IAAI,CAAC,mBAAmB,CAAC,YAAY,CACnC,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,CAAC,GAAU,CAAC,EAC3D,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,GAAU,CAAC,CACzD;KACF,CAAC;SACD,KAAK,CACJ;QACE,IAAI,CAAC,mBAAmB,CAAC,YAAY,CACrC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAC9C;KACF,CACA;SACA,QAAQ,CACP,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EACrD,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,GAAU,CAAC,CACzD;SACA,aAAa,CAAC;QACb,CAAC,QAAQ,CAAC,EAAE,EAAE;KACf,CAAC;SACD,MAAM,EAAE,CAAa,CAAC;IAEzB,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;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEjE,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ export { getAll } from './get-all/get-all';
2
+ export { getOne } from './get-one/get-one';
3
+ export { deleteOne } from './delete-one/delete-one';
4
+ export { postOne } from './post-one/post-one';
5
+ export { patchOne } from './patch-one/patch-one';
6
+ export { getRelationship } from './get-relationship/get-relationship';
7
+ export { postRelationship } from './post-relationship/post-relationship';
8
+ export { deleteRelationship } from './delete-relationship/delete-relationship';
9
+ export { patchRelationship } from './patch-relationship/patch-relationship';
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.patchRelationship = exports.deleteRelationship = exports.postRelationship = exports.getRelationship = exports.patchOne = exports.postOne = exports.deleteOne = exports.getOne = exports.getAll = void 0;
4
+ var get_all_1 = require("./get-all/get-all");
5
+ Object.defineProperty(exports, "getAll", { enumerable: true, get: function () { return get_all_1.getAll; } });
6
+ var get_one_1 = require("./get-one/get-one");
7
+ Object.defineProperty(exports, "getOne", { enumerable: true, get: function () { return get_one_1.getOne; } });
8
+ var delete_one_1 = require("./delete-one/delete-one");
9
+ Object.defineProperty(exports, "deleteOne", { enumerable: true, get: function () { return delete_one_1.deleteOne; } });
10
+ var post_one_1 = require("./post-one/post-one");
11
+ Object.defineProperty(exports, "postOne", { enumerable: true, get: function () { return post_one_1.postOne; } });
12
+ var patch_one_1 = require("./patch-one/patch-one");
13
+ Object.defineProperty(exports, "patchOne", { enumerable: true, get: function () { return patch_one_1.patchOne; } });
14
+ var get_relationship_1 = require("./get-relationship/get-relationship");
15
+ Object.defineProperty(exports, "getRelationship", { enumerable: true, get: function () { return get_relationship_1.getRelationship; } });
16
+ var post_relationship_1 = require("./post-relationship/post-relationship");
17
+ Object.defineProperty(exports, "postRelationship", { enumerable: true, get: function () { return post_relationship_1.postRelationship; } });
18
+ var delete_relationship_1 = require("./delete-relationship/delete-relationship");
19
+ Object.defineProperty(exports, "deleteRelationship", { enumerable: true, get: function () { return delete_relationship_1.deleteRelationship; } });
20
+ var patch_relationship_1 = require("./patch-relationship/patch-relationship");
21
+ Object.defineProperty(exports, "patchRelationship", { enumerable: true, get: function () { return patch_relationship_1.patchRelationship; } });
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/index.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAAlC,iGAAA,MAAM,OAAA;AACf,6CAA2C;AAAlC,iGAAA,MAAM,OAAA;AACf,sDAAoD;AAA3C,uGAAA,SAAS,OAAA;AAClB,gDAA8C;AAArC,mGAAA,OAAO,OAAA;AAChB,mDAAiD;AAAxC,qGAAA,QAAQ,OAAA;AACjB,wEAAsE;AAA7D,mHAAA,eAAe,OAAA;AACxB,2EAAyE;AAAhE,qHAAA,gBAAgB,OAAA;AACzB,iFAA+E;AAAtE,yHAAA,kBAAkB,OAAA;AAC3B,8EAA4E;AAAnE,uHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { ResourceObject } from '@klerick/json-api-nestjs-shared';
2
+ import { PatchData } from '@klerick/json-api-nestjs';
3
+ import { TypeOrmService } from '../../service';
4
+ export declare function patchOne<E extends object, IdKey extends string>(this: TypeOrmService<E, IdKey>, id: number | string, inputData: PatchData<E, IdKey>): Promise<ResourceObject<E, 'object', null, IdKey>>;
@@ -0,0 +1,50 @@
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 paramsId = 'paramsId';
17
+ const result = (await this.repository
18
+ .createQueryBuilder()
19
+ .where(`${this.typeormUtilsService.getAliasPath(this.typeormUtilsService.currentPrimaryColumn)} = :${paramsId}`, {
20
+ [paramsId]: id,
21
+ })
22
+ .getOne());
23
+ if (!result) {
24
+ const error = {
25
+ code: 'invalid_arguments',
26
+ message: `Resource '${this.typeormUtilsService.currentAlias}' with id '${id}' does not exist`,
27
+ path: ['data', 'id'],
28
+ };
29
+ throw new common_1.NotFoundException([error]);
30
+ }
31
+ if (attributes) {
32
+ const entityTarget = this.repository.manager.create(this.repository.target, attributes);
33
+ for (const [props, val] of json_api_nestjs_shared_1.ObjectTyped.entries(entityTarget)) {
34
+ result[props] = val;
35
+ }
36
+ }
37
+ const saveData = (await this.typeormUtilsService.saveEntityData(result, relationships));
38
+ const fakeQuery = {
39
+ [json_api_nestjs_shared_1.QueryField.fields]: null,
40
+ [json_api_nestjs_shared_1.QueryField.include]: Object.keys(relationships || {}),
41
+ };
42
+ const { data, included } = this.transformDataService.transformData(saveData, fakeQuery);
43
+ const includeData = included ? { included } : {};
44
+ return {
45
+ meta: {},
46
+ data,
47
+ ...includeData,
48
+ };
49
+ }
50
+ //# sourceMappingURL=patch-one.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/patch-one/patch-one.ts"],"names":[],"mappings":";;AAcA,4BAqEC;AAnFD,2CAGwB;AACxB,4EAIyC;AAMlC,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,QAAQ,GAAG,UAAU,CAAC;IAC5B,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU;SAClC,kBAAkB,EAAE;SACpB,KAAK,CACJ,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CACtC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAC9C,OAAO,QAAQ,EAAE,EAClB;QACE,CAAC,QAAQ,CAAC,EAAE,EAAE;KACf,CACF;SACA,MAAM,EAAE,CAAa,CAAC;IAEzB,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,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,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CACjD,IAAI,CAAC,UAAU,CAAC,MAAM,EACtB,UAA4B,CAC7B,CAAC;QACF,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,oCAAW,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC7D,MAAM,EACN,aAAa,CACd,CAAM,CAAC;IAER,MAAM,SAAS,GAAoB;QACjC,CAAC,mCAAU,CAAC,MAAM,CAAC,EAAE,IAAI;QACzB,CAAC,mCAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;KAChD,CAAC;IAET,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAChE,QAAQ,EACR,SAAS,CACV,CAAC;IACF,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI;QACJ,GAAG,WAAW;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PatchRelationshipData } from '@klerick/json-api-nestjs';
2
+ import { RelationKeys, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
3
+ import { TypeOrmService } from '../../service';
4
+ export declare function patchRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: TypeOrmService<E, IdKey>, id: number | string, rel: Rel, input: PatchRelationshipData): Promise<ResourceObjectRelationships<E, IdKey, Rel>>;
@@ -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.typeormUtilsService.validateRelationInputData(rel, input);
7
+ const patchBuilder = this.repository
8
+ .createQueryBuilder()
9
+ .relation(rel.toString())
10
+ .of(id);
11
+ if (Array.isArray(idsResult)) {
12
+ const data = await get_relationship_1.getRelationship.call(this, id, rel);
13
+ const idsToDelete = Array.isArray(data.data)
14
+ ? data.data.map((i) => i.id)
15
+ : [];
16
+ await patchBuilder.addAndRemove(idsResult, idsToDelete);
17
+ }
18
+ else {
19
+ await patchBuilder.set(idsResult);
20
+ }
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-typeorm/src/lib/orm-methods/patch-relationship/patch-relationship.ts"],"names":[],"mappings":";;AASA,8CAwCC;AA3CD,2EAAuE;AAGhE,KAAK,UAAU,iBAAiB,CAMrC,EAAmB,EACnB,GAAQ,EACR,KAA4B;IAE5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CACxE,GAAG,EACH,KAAK,CACN,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU;SACjC,kBAAkB,EAAE;SACpB,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SACxB,EAAE,CAAC,EAAE,CAAC,CAAC;IAEV,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,kCAAe,CAAC,IAAI,CAIrC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QACjB,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,YAAY,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,kCAAe,CAAC,IAAI,CAIzB,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PostData } from '@klerick/json-api-nestjs';
2
+ import { ResourceObject } from '@klerick/json-api-nestjs-shared';
3
+ import { TypeOrmService } from '../../service';
4
+ export declare function postOne<E extends object, IdKey extends string>(this: TypeOrmService<E, IdKey>, inputData: PostData<E, IdKey>): Promise<ResourceObject<E, 'object', null, IdKey>>;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postOne = postOne;
4
+ const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
5
+ async function postOne(inputData) {
6
+ const { attributes, relationships, id } = inputData;
7
+ const idObject = id
8
+ ? { [this.typeormUtilsService.currentPrimaryColumn.toString()]: id }
9
+ : {};
10
+ const attributesObject = {
11
+ ...attributes,
12
+ ...idObject,
13
+ };
14
+ const entityTarget = this.repository.manager.create(this.repository.target, attributesObject);
15
+ const saveData = await this.typeormUtilsService.saveEntityData(entityTarget, relationships);
16
+ const fakeQuery = {
17
+ [json_api_nestjs_shared_1.QueryField.fields]: null,
18
+ [json_api_nestjs_shared_1.QueryField.include]: Object.keys(relationships || {}),
19
+ };
20
+ const { data, included } = this.transformDataService.transformData(saveData, fakeQuery);
21
+ const includeData = included ? { included } : {};
22
+ return {
23
+ meta: {},
24
+ data,
25
+ ...includeData,
26
+ };
27
+ }
28
+ //# sourceMappingURL=post-one.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-one.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/post-one/post-one.ts"],"names":[],"mappings":";;AAMA,0BAuCC;AA5CD,4EAA6E;AAKtE,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;KACM,CAAC;IAEpB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CACjD,IAAI,CAAC,UAAU,CAAC,MAAM,EACtB,gBAAgB,CACjB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAC5D,YAAY,EACZ,aAAa,CACd,CAAC;IACF,MAAM,SAAS,GAAoB;QACjC,CAAC,mCAAU,CAAC,MAAM,CAAC,EAAE,IAAI;QACzB,CAAC,mCAAU,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;KAChD,CAAC;IAET,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAChE,QAAQ,EACR,SAAS,CACV,CAAC;IACF,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACjD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,IAAI;QACJ,GAAG,WAAW;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { RelationKeys, ResourceObjectRelationships } from '@klerick/json-api-nestjs-shared';
2
+ import { PostRelationshipData } from '@klerick/json-api-nestjs';
3
+ import { TypeOrmService } from '../../service';
4
+ export declare function postRelationship<E extends object, IdKey extends string, Rel extends RelationKeys<E, IdKey>>(this: TypeOrmService<E, IdKey>, id: number | string, rel: Rel, input: PostRelationshipData): Promise<ResourceObjectRelationships<E, IdKey, Rel>>;
@@ -0,0 +1,19 @@
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.typeormUtilsService.validateRelationInputData(rel, input);
7
+ const postBuilder = this.repository
8
+ .createQueryBuilder()
9
+ .relation(rel.toString())
10
+ .of(id);
11
+ if (Array.isArray(idsResult)) {
12
+ await postBuilder.add(idsResult);
13
+ }
14
+ else {
15
+ await postBuilder.set(idsResult);
16
+ }
17
+ return get_relationship_1.getRelationship.call(this, id, rel);
18
+ }
19
+ //# sourceMappingURL=post-relationship.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-relationship.js","sourceRoot":"","sources":["../../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/orm-methods/post-relationship/post-relationship.ts"],"names":[],"mappings":";;AASA,4CA8BC;AAjCD,2EAAuE;AAGhE,KAAK,UAAU,gBAAgB,CAMpC,EAAmB,EACnB,GAAQ,EACR,KAA2B;IAE3B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,yBAAyB,CACxE,GAAG,EACH,KAAK,CACN,CAAC;IACF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU;SAChC,kBAAkB,EAAE;SACpB,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;SACxB,EAAE,CAAC,EAAE,CAAC,CAAC;IAEV,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,kCAAe,CAAC,IAAI,CAIzB,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './type-orm.service';
2
+ export * from './typeorm-utils.service';
3
+ export * from './type-orm-format.error.service';
@@ -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("./type-orm.service"), exports);
5
+ tslib_1.__exportStar(require("./typeorm-utils.service"), exports);
6
+ tslib_1.__exportStar(require("./type-orm-format.error.service"), exports);
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/json-api/json-api-nestjs-typeorm/src/lib/service/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,kEAAwC;AACxC,0EAAgD"}
@@ -0,0 +1,21 @@
1
+ import { ErrorFormatService } from '@klerick/json-api-nestjs';
2
+ import { BadRequestException, ConflictException, HttpException, NotAcceptableException } from '@nestjs/common';
3
+ import { EntityMetadata } from 'typeorm';
4
+ import { Driver } from 'typeorm/driver/Driver';
5
+ export declare const formErrorString: (entityMetadata: EntityMetadata, errorText: string) => string;
6
+ export declare const PostgresError: {
7
+ 23502: (entityMetadata: EntityMetadata, errorText: string, detail?: string) => BadRequestException;
8
+ 23505: (entityMetadata: EntityMetadata, errorText: string, detail?: string) => ConflictException;
9
+ "22P02": (entityMetadata: EntityMetadata, errorText: string, detail?: string) => BadRequestException;
10
+ 22007: (entityMetadata: EntityMetadata, errorText: string, detail?: string) => BadRequestException;
11
+ 22003: (entityMetadata: EntityMetadata, errorText: string, detail?: string) => BadRequestException;
12
+ 23503: (entityMetadata: EntityMetadata, errorText: string, detail?: string) => NotAcceptableException;
13
+ };
14
+ export declare class TypeOrmFormatErrorService extends ErrorFormatService {
15
+ private entityManager;
16
+ private readonly mapProperty;
17
+ private _dbDriver;
18
+ get dbDriver(): Driver;
19
+ formatError(error: unknown): HttpException;
20
+ private prepareDataBaseError;
21
+ }