@elsikora/nestjs-crud-automator 2.0.4-dev.1 → 2.1.0-dev.1
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/dist/cjs/interface/decorator/api/controller/properties/route/base/interface.d.ts +2 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/utility/api/controller/apply/decorators.utility.js +10 -12
- package/dist/cjs/utility/api/controller/apply/decorators.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/build-route-documentation.utility.d.ts +15 -0
- package/dist/cjs/utility/api/controller/build-route-documentation.utility.js +75 -0
- package/dist/cjs/utility/api/controller/build-route-documentation.utility.js.map +1 -0
- package/dist/esm/interface/decorator/api/controller/properties/route/base/interface.d.ts +2 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/utility/api/controller/apply/decorators.utility.js +10 -12
- package/dist/esm/utility/api/controller/apply/decorators.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/build-route-documentation.utility.d.ts +15 -0
- package/dist/esm/utility/api/controller/build-route-documentation.utility.js +73 -0
- package/dist/esm/utility/api/controller/build-route-documentation.utility.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { EApiRouteType } from '../../../../../../../enum/decorator/api';
|
|
2
2
|
import { IApiControllerPropertiesRouteBaseGeneration, IApiControllerPropertiesRouteBaseRelations, IApiControllerPropertiesRouteBaseRequest, IApiControllerPropertiesRouteBaseResponse, IApiControllerPropertiesRouteBaseSecurity } from '../../../..';
|
|
3
|
+
import { IApiRouteDocumentationProperties } from '../../../../route/documentation-properties.interface';
|
|
3
4
|
export interface IApiControllerPropertiesRouteBase<E, R extends EApiRouteType> {
|
|
5
|
+
documentation?: IApiRouteDocumentationProperties;
|
|
4
6
|
generation?: IApiControllerPropertiesRouteBaseGeneration;
|
|
5
7
|
relations?: IApiControllerPropertiesRouteBaseRelations<E>;
|
|
6
8
|
request?: IApiControllerPropertiesRouteBaseRequest<E, R>;
|
package/dist/cjs/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var method_decorator = require('../../../../decorator/api/method.decorator.js');
|
|
4
|
-
|
|
4
|
+
require('../../../../enum/decorator/api/action.enum.js');
|
|
5
5
|
require('../../../../enum/decorator/api/authentication-type.enum.js');
|
|
6
6
|
require('../../../../enum/decorator/api/controller/load-relations-strategy.enum.js');
|
|
7
7
|
require('../../../../enum/decorator/api/controller/relation-reference-shape.enum.js');
|
|
@@ -20,6 +20,7 @@ require('../../../../enum/decorator/api/property/number-type.enum.js');
|
|
|
20
20
|
require('../../../../enum/decorator/api/property/string-type.enum.js');
|
|
21
21
|
var routeType_enum = require('../../../../enum/decorator/api/route-type.enum.js');
|
|
22
22
|
var common = require('@nestjs/common');
|
|
23
|
+
var buildRouteDocumentation_utility = require('../build-route-documentation.utility.js');
|
|
23
24
|
var dto_utility = require('../get/dto.utility.js');
|
|
24
25
|
var exception_utility = require('../../../error/exception.utility.js');
|
|
25
26
|
|
|
@@ -42,31 +43,31 @@ function ApiControllerApplyDecorators(targetMethod, entity, properties, method,
|
|
|
42
43
|
const customDecorators = [...decorators];
|
|
43
44
|
switch (method) {
|
|
44
45
|
case routeType_enum.EApiRouteType.CREATE: {
|
|
45
|
-
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.POST, "", common.HttpStatus.CREATED, responseDto, { hasConflict: true, hasInternalServerError: true, hasUnauthorized: true }
|
|
46
|
+
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.POST, "", common.HttpStatus.CREATED, responseDto, { hasConflict: true, hasInternalServerError: true, hasUnauthorized: true }) }));
|
|
46
47
|
break;
|
|
47
48
|
}
|
|
48
49
|
case routeType_enum.EApiRouteType.DELETE: {
|
|
49
|
-
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.DELETE, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.NO_CONTENT, undefined, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
50
|
+
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.DELETE, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.NO_CONTENT, undefined, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }) }));
|
|
50
51
|
break;
|
|
51
52
|
}
|
|
52
53
|
case routeType_enum.EApiRouteType.GET: {
|
|
53
54
|
customDecorators.push(method_decorator.ApiMethod({
|
|
54
|
-
metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.GET, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
55
|
+
metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.GET, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }),
|
|
55
56
|
}));
|
|
56
57
|
break;
|
|
57
58
|
}
|
|
58
59
|
case routeType_enum.EApiRouteType.GET_LIST: {
|
|
59
60
|
customDecorators.push(method_decorator.ApiMethod({
|
|
60
|
-
metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.GET, "", common.HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
61
|
+
metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.GET, "", common.HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }),
|
|
61
62
|
}));
|
|
62
63
|
break;
|
|
63
64
|
}
|
|
64
65
|
case routeType_enum.EApiRouteType.PARTIAL_UPDATE: {
|
|
65
|
-
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.PATCH, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
66
|
+
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.PATCH, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }) }));
|
|
66
67
|
break;
|
|
67
68
|
}
|
|
68
69
|
case routeType_enum.EApiRouteType.UPDATE: {
|
|
69
|
-
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.PUT, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
70
|
+
customDecorators.push(method_decorator.ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, common.RequestMethod.PUT, `:${String(entity.primaryKey?.name)}`, common.HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }) }));
|
|
70
71
|
break;
|
|
71
72
|
}
|
|
72
73
|
default: {
|
|
@@ -91,14 +92,11 @@ function ApiControllerApplyDecorators(targetMethod, entity, properties, method,
|
|
|
91
92
|
* @param {HttpStatus} status - Successful HTTP status code.
|
|
92
93
|
* @param {Type<unknown> | undefined} responseType - Swagger and serialization response DTO type.
|
|
93
94
|
* @param {NonNullable<IApiRouteMetadata<E>["response"]>["errors"]} errors - Standard error response flags.
|
|
94
|
-
* @param {EApiAction} documentationAction - Action label used for generated documentation.
|
|
95
95
|
* @returns {IApiRouteMetadata<E>} Route metadata consumed by ApiMethod and the route runtime.
|
|
96
96
|
*/
|
|
97
|
-
function createRouteMetadata(properties, routeConfig, routeType, requestMethod, path, status, responseType, errors
|
|
97
|
+
function createRouteMetadata(properties, routeConfig, routeType, requestMethod, path, status, responseType, errors) {
|
|
98
98
|
return {
|
|
99
|
-
documentation: {
|
|
100
|
-
summary: documentationAction,
|
|
101
|
-
},
|
|
99
|
+
documentation: buildRouteDocumentation_utility.ApiControllerBuildRouteDocumentation({ documentation: routeConfig.documentation, resourceName: properties.name ?? properties.entity.name ?? "UnknownResource", routeType }),
|
|
102
100
|
resource: {
|
|
103
101
|
action: routeType,
|
|
104
102
|
entity: properties.entity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.utility.js","sources":["../../../../../../../src/utility/api/controller/apply/decorators.utility.ts"],"sourcesContent":[null],"names":["ApiControllerGetDto","EApiDtoType","EApiRouteType","ApiMethod","RequestMethod","HttpStatus","
|
|
1
|
+
{"version":3,"file":"decorators.utility.js","sources":["../../../../../../../src/utility/api/controller/apply/decorators.utility.ts"],"sourcesContent":[null],"names":["ApiControllerGetDto","EApiDtoType","EApiRouteType","ApiMethod","RequestMethod","HttpStatus","ErrorException","ApiControllerBuildRouteDocumentation"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EApiRouteType } from '../../../enum/decorator/api';
|
|
2
|
+
import { IApiRouteDocumentationProperties } from '../../../interface/decorator/api/route/documentation-properties.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Builds default Swagger documentation for generated CRUD routes.
|
|
5
|
+
* @param {object} options - Route documentation inputs.
|
|
6
|
+
* @param {IApiRouteDocumentationProperties} [options.documentation] - User-provided overrides.
|
|
7
|
+
* @param {string} options.resourceName - Human-friendly resource name represented by the route.
|
|
8
|
+
* @param {EApiRouteType} options.routeType - Generated CRUD route type.
|
|
9
|
+
* @returns {IApiRouteDocumentationProperties} Documentation metadata for ApiMethod.
|
|
10
|
+
*/
|
|
11
|
+
export declare function ApiControllerBuildRouteDocumentation(options: {
|
|
12
|
+
documentation?: IApiRouteDocumentationProperties;
|
|
13
|
+
resourceName: string;
|
|
14
|
+
routeType: EApiRouteType;
|
|
15
|
+
}): IApiRouteDocumentationProperties;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var pluralizer = require('@elsikora/pluralizer');
|
|
4
|
+
require('../../../enum/decorator/api/action.enum.js');
|
|
5
|
+
require('../../../enum/decorator/api/authentication-type.enum.js');
|
|
6
|
+
require('../../../enum/decorator/api/controller/load-relations-strategy.enum.js');
|
|
7
|
+
require('../../../enum/decorator/api/controller/relation-reference-shape.enum.js');
|
|
8
|
+
require('../../../enum/decorator/api/controller/request/target.enum.js');
|
|
9
|
+
require('../../../enum/decorator/api/controller/request/transformer-type.enum.js');
|
|
10
|
+
require('../../../enum/decorator/api/controller/response-target.enum.js');
|
|
11
|
+
require('../../../enum/decorator/api/dto-type.enum.js');
|
|
12
|
+
require('../../../enum/decorator/api/function-transaction-mode.enum.js');
|
|
13
|
+
require('../../../enum/decorator/api/function-type.enum.js');
|
|
14
|
+
require('../../../enum/decorator/api/on-type.enum.js');
|
|
15
|
+
require('../../../enum/decorator/api/property/data-type.enum.js');
|
|
16
|
+
require('../../../enum/decorator/api/property/date/identifier.enum.js');
|
|
17
|
+
require('../../../enum/decorator/api/property/date/type.enum.js');
|
|
18
|
+
require('../../../enum/decorator/api/property/desribe-type.enum.js');
|
|
19
|
+
require('../../../enum/decorator/api/property/number-type.enum.js');
|
|
20
|
+
require('../../../enum/decorator/api/property/string-type.enum.js');
|
|
21
|
+
var routeType_enum = require('../../../enum/decorator/api/route-type.enum.js');
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Builds default Swagger documentation for generated CRUD routes.
|
|
25
|
+
* @param {object} options - Route documentation inputs.
|
|
26
|
+
* @param {IApiRouteDocumentationProperties} [options.documentation] - User-provided overrides.
|
|
27
|
+
* @param {string} options.resourceName - Human-friendly resource name represented by the route.
|
|
28
|
+
* @param {EApiRouteType} options.routeType - Generated CRUD route type.
|
|
29
|
+
* @returns {IApiRouteDocumentationProperties} Documentation metadata for ApiMethod.
|
|
30
|
+
*/
|
|
31
|
+
function ApiControllerBuildRouteDocumentation(options) {
|
|
32
|
+
const resourceName = pluralizer.pluralizer.toPlural(options.resourceName);
|
|
33
|
+
let summary;
|
|
34
|
+
let description;
|
|
35
|
+
switch (options.routeType) {
|
|
36
|
+
case routeType_enum.EApiRouteType.CREATE: {
|
|
37
|
+
summary = `Creating \`${resourceName}\``;
|
|
38
|
+
description = `This method is used for creating \`${resourceName}\``;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case routeType_enum.EApiRouteType.DELETE: {
|
|
42
|
+
summary = `Deleting \`${resourceName}\``;
|
|
43
|
+
description = `This method is used for deleting \`${resourceName}\``;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case routeType_enum.EApiRouteType.GET: {
|
|
47
|
+
summary = `Fetching \`${resourceName}\``;
|
|
48
|
+
description = `This method is used for fetching \`${resourceName}\``;
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case routeType_enum.EApiRouteType.GET_LIST: {
|
|
52
|
+
summary = `Fetching list of \`${resourceName}\``;
|
|
53
|
+
description = `This method is used for fetching list of \`${resourceName}\``;
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
case routeType_enum.EApiRouteType.PARTIAL_UPDATE: {
|
|
57
|
+
summary = `Partially updating \`${resourceName}\``;
|
|
58
|
+
description = `This method is used for partially updating \`${resourceName}\``;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case routeType_enum.EApiRouteType.UPDATE: {
|
|
62
|
+
summary = `Updating \`${resourceName}\``;
|
|
63
|
+
description = `This method is used for updating \`${resourceName}\``;
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
description: options.documentation?.description ?? description,
|
|
69
|
+
operationId: options.documentation?.operationId,
|
|
70
|
+
summary: options.documentation?.summary ?? summary,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
exports.ApiControllerBuildRouteDocumentation = ApiControllerBuildRouteDocumentation;
|
|
75
|
+
//# sourceMappingURL=build-route-documentation.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-route-documentation.utility.js","sources":["../../../../../../src/utility/api/controller/build-route-documentation.utility.ts"],"sourcesContent":[null],"names":["pluralizer","EApiRouteTypeValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;AAOG;AACG,SAAU,oCAAoC,CAAC,OAA6G,EAAA;IACjK,MAAM,YAAY,GAAWA,qBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;AACtE,IAAA,IAAI,OAAe;AACnB,IAAA,IAAI,WAAmB;AAEvB,IAAA,QAAQ,OAAO,CAAC,SAAS;AACxB,QAAA,KAAKC,4BAAkB,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;AAEA,QAAA,KAAKA,4BAAkB,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;AAEA,QAAA,KAAKA,4BAAkB,CAAC,GAAG,EAAE;AAC5B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;AAEA,QAAA,KAAKA,4BAAkB,CAAC,QAAQ,EAAE;AACjC,YAAA,OAAO,GAAG,CAAA,mBAAA,EAAsB,YAAY,CAAA,EAAA,CAAI;AAChD,YAAA,WAAW,GAAG,CAAA,2CAAA,EAA8C,YAAY,CAAA,EAAA,CAAI;YAE5E;QACD;AAEA,QAAA,KAAKA,4BAAkB,CAAC,cAAc,EAAE;AACvC,YAAA,OAAO,GAAG,CAAA,qBAAA,EAAwB,YAAY,CAAA,EAAA,CAAI;AAClD,YAAA,WAAW,GAAG,CAAA,6CAAA,EAAgD,YAAY,CAAA,EAAA,CAAI;YAE9E;QACD;AAEA,QAAA,KAAKA,4BAAkB,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;;IAGD,OAAO;AACN,QAAA,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,IAAI,WAAW;AAC9D,QAAA,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW;AAC/C,QAAA,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,IAAI,OAAO;KAClD;AACF;;;;"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { EApiRouteType } from '../../../../../../../enum/decorator/api';
|
|
2
2
|
import { IApiControllerPropertiesRouteBaseGeneration, IApiControllerPropertiesRouteBaseRelations, IApiControllerPropertiesRouteBaseRequest, IApiControllerPropertiesRouteBaseResponse, IApiControllerPropertiesRouteBaseSecurity } from '../../../..';
|
|
3
|
+
import { IApiRouteDocumentationProperties } from '../../../../route/documentation-properties.interface';
|
|
3
4
|
export interface IApiControllerPropertiesRouteBase<E, R extends EApiRouteType> {
|
|
5
|
+
documentation?: IApiRouteDocumentationProperties;
|
|
4
6
|
generation?: IApiControllerPropertiesRouteBaseGeneration;
|
|
5
7
|
relations?: IApiControllerPropertiesRouteBaseRelations<E>;
|
|
6
8
|
request?: IApiControllerPropertiesRouteBaseRequest<E, R>;
|
package/dist/esm/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApiMethod } from '../../../../decorator/api/method.decorator.js';
|
|
2
|
-
import
|
|
2
|
+
import '../../../../enum/decorator/api/action.enum.js';
|
|
3
3
|
import '../../../../enum/decorator/api/authentication-type.enum.js';
|
|
4
4
|
import '../../../../enum/decorator/api/controller/load-relations-strategy.enum.js';
|
|
5
5
|
import '../../../../enum/decorator/api/controller/relation-reference-shape.enum.js';
|
|
@@ -18,6 +18,7 @@ import '../../../../enum/decorator/api/property/number-type.enum.js';
|
|
|
18
18
|
import '../../../../enum/decorator/api/property/string-type.enum.js';
|
|
19
19
|
import { EApiRouteType } from '../../../../enum/decorator/api/route-type.enum.js';
|
|
20
20
|
import { HttpStatus, RequestMethod } from '@nestjs/common';
|
|
21
|
+
import { ApiControllerBuildRouteDocumentation } from '../build-route-documentation.utility.js';
|
|
21
22
|
import { ApiControllerGetDto } from '../get/dto.utility.js';
|
|
22
23
|
import { ErrorException } from '../../../error/exception.utility.js';
|
|
23
24
|
|
|
@@ -40,31 +41,31 @@ function ApiControllerApplyDecorators(targetMethod, entity, properties, method,
|
|
|
40
41
|
const customDecorators = [...decorators];
|
|
41
42
|
switch (method) {
|
|
42
43
|
case EApiRouteType.CREATE: {
|
|
43
|
-
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.POST, "", HttpStatus.CREATED, responseDto, { hasConflict: true, hasInternalServerError: true, hasUnauthorized: true }
|
|
44
|
+
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.POST, "", HttpStatus.CREATED, responseDto, { hasConflict: true, hasInternalServerError: true, hasUnauthorized: true }) }));
|
|
44
45
|
break;
|
|
45
46
|
}
|
|
46
47
|
case EApiRouteType.DELETE: {
|
|
47
|
-
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.DELETE, `:${String(entity.primaryKey?.name)}`, HttpStatus.NO_CONTENT, undefined, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
48
|
+
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.DELETE, `:${String(entity.primaryKey?.name)}`, HttpStatus.NO_CONTENT, undefined, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }) }));
|
|
48
49
|
break;
|
|
49
50
|
}
|
|
50
51
|
case EApiRouteType.GET: {
|
|
51
52
|
customDecorators.push(ApiMethod({
|
|
52
|
-
metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.GET, `:${String(entity.primaryKey?.name)}`, HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
53
|
+
metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.GET, `:${String(entity.primaryKey?.name)}`, HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }),
|
|
53
54
|
}));
|
|
54
55
|
break;
|
|
55
56
|
}
|
|
56
57
|
case EApiRouteType.GET_LIST: {
|
|
57
58
|
customDecorators.push(ApiMethod({
|
|
58
|
-
metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.GET, "", HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
59
|
+
metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.GET, "", HttpStatus.OK, responseDto, { hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }),
|
|
59
60
|
}));
|
|
60
61
|
break;
|
|
61
62
|
}
|
|
62
63
|
case EApiRouteType.PARTIAL_UPDATE: {
|
|
63
|
-
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.PATCH, `:${String(entity.primaryKey?.name)}`, HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
64
|
+
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.PATCH, `:${String(entity.primaryKey?.name)}`, HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }) }));
|
|
64
65
|
break;
|
|
65
66
|
}
|
|
66
67
|
case EApiRouteType.UPDATE: {
|
|
67
|
-
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.PUT, `:${String(entity.primaryKey?.name)}`, HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }
|
|
68
|
+
customDecorators.push(ApiMethod({ metadata: createRouteMetadata(properties, routeConfig, method, RequestMethod.PUT, `:${String(entity.primaryKey?.name)}`, HttpStatus.OK, responseDto, { hasBadRequest: true, hasConflict: true, hasInternalServerError: true, hasNotFound: true, hasUnauthorized: true }) }));
|
|
68
69
|
break;
|
|
69
70
|
}
|
|
70
71
|
default: {
|
|
@@ -89,14 +90,11 @@ function ApiControllerApplyDecorators(targetMethod, entity, properties, method,
|
|
|
89
90
|
* @param {HttpStatus} status - Successful HTTP status code.
|
|
90
91
|
* @param {Type<unknown> | undefined} responseType - Swagger and serialization response DTO type.
|
|
91
92
|
* @param {NonNullable<IApiRouteMetadata<E>["response"]>["errors"]} errors - Standard error response flags.
|
|
92
|
-
* @param {EApiAction} documentationAction - Action label used for generated documentation.
|
|
93
93
|
* @returns {IApiRouteMetadata<E>} Route metadata consumed by ApiMethod and the route runtime.
|
|
94
94
|
*/
|
|
95
|
-
function createRouteMetadata(properties, routeConfig, routeType, requestMethod, path, status, responseType, errors
|
|
95
|
+
function createRouteMetadata(properties, routeConfig, routeType, requestMethod, path, status, responseType, errors) {
|
|
96
96
|
return {
|
|
97
|
-
documentation: {
|
|
98
|
-
summary: documentationAction,
|
|
99
|
-
},
|
|
97
|
+
documentation: ApiControllerBuildRouteDocumentation({ documentation: routeConfig.documentation, resourceName: properties.name ?? properties.entity.name ?? "UnknownResource", routeType }),
|
|
100
98
|
resource: {
|
|
101
99
|
action: routeType,
|
|
102
100
|
entity: properties.entity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.utility.js","sources":["../../../../../../../src/utility/api/controller/apply/decorators.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.utility.js","sources":["../../../../../../../src/utility/api/controller/apply/decorators.utility.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EApiRouteType } from '../../../enum/decorator/api';
|
|
2
|
+
import { IApiRouteDocumentationProperties } from '../../../interface/decorator/api/route/documentation-properties.interface';
|
|
3
|
+
/**
|
|
4
|
+
* Builds default Swagger documentation for generated CRUD routes.
|
|
5
|
+
* @param {object} options - Route documentation inputs.
|
|
6
|
+
* @param {IApiRouteDocumentationProperties} [options.documentation] - User-provided overrides.
|
|
7
|
+
* @param {string} options.resourceName - Human-friendly resource name represented by the route.
|
|
8
|
+
* @param {EApiRouteType} options.routeType - Generated CRUD route type.
|
|
9
|
+
* @returns {IApiRouteDocumentationProperties} Documentation metadata for ApiMethod.
|
|
10
|
+
*/
|
|
11
|
+
export declare function ApiControllerBuildRouteDocumentation(options: {
|
|
12
|
+
documentation?: IApiRouteDocumentationProperties;
|
|
13
|
+
resourceName: string;
|
|
14
|
+
routeType: EApiRouteType;
|
|
15
|
+
}): IApiRouteDocumentationProperties;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { pluralizer } from '@elsikora/pluralizer';
|
|
2
|
+
import '../../../enum/decorator/api/action.enum.js';
|
|
3
|
+
import '../../../enum/decorator/api/authentication-type.enum.js';
|
|
4
|
+
import '../../../enum/decorator/api/controller/load-relations-strategy.enum.js';
|
|
5
|
+
import '../../../enum/decorator/api/controller/relation-reference-shape.enum.js';
|
|
6
|
+
import '../../../enum/decorator/api/controller/request/target.enum.js';
|
|
7
|
+
import '../../../enum/decorator/api/controller/request/transformer-type.enum.js';
|
|
8
|
+
import '../../../enum/decorator/api/controller/response-target.enum.js';
|
|
9
|
+
import '../../../enum/decorator/api/dto-type.enum.js';
|
|
10
|
+
import '../../../enum/decorator/api/function-transaction-mode.enum.js';
|
|
11
|
+
import '../../../enum/decorator/api/function-type.enum.js';
|
|
12
|
+
import '../../../enum/decorator/api/on-type.enum.js';
|
|
13
|
+
import '../../../enum/decorator/api/property/data-type.enum.js';
|
|
14
|
+
import '../../../enum/decorator/api/property/date/identifier.enum.js';
|
|
15
|
+
import '../../../enum/decorator/api/property/date/type.enum.js';
|
|
16
|
+
import '../../../enum/decorator/api/property/desribe-type.enum.js';
|
|
17
|
+
import '../../../enum/decorator/api/property/number-type.enum.js';
|
|
18
|
+
import '../../../enum/decorator/api/property/string-type.enum.js';
|
|
19
|
+
import { EApiRouteType } from '../../../enum/decorator/api/route-type.enum.js';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Builds default Swagger documentation for generated CRUD routes.
|
|
23
|
+
* @param {object} options - Route documentation inputs.
|
|
24
|
+
* @param {IApiRouteDocumentationProperties} [options.documentation] - User-provided overrides.
|
|
25
|
+
* @param {string} options.resourceName - Human-friendly resource name represented by the route.
|
|
26
|
+
* @param {EApiRouteType} options.routeType - Generated CRUD route type.
|
|
27
|
+
* @returns {IApiRouteDocumentationProperties} Documentation metadata for ApiMethod.
|
|
28
|
+
*/
|
|
29
|
+
function ApiControllerBuildRouteDocumentation(options) {
|
|
30
|
+
const resourceName = pluralizer.toPlural(options.resourceName);
|
|
31
|
+
let summary;
|
|
32
|
+
let description;
|
|
33
|
+
switch (options.routeType) {
|
|
34
|
+
case EApiRouteType.CREATE: {
|
|
35
|
+
summary = `Creating \`${resourceName}\``;
|
|
36
|
+
description = `This method is used for creating \`${resourceName}\``;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
case EApiRouteType.DELETE: {
|
|
40
|
+
summary = `Deleting \`${resourceName}\``;
|
|
41
|
+
description = `This method is used for deleting \`${resourceName}\``;
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
case EApiRouteType.GET: {
|
|
45
|
+
summary = `Fetching \`${resourceName}\``;
|
|
46
|
+
description = `This method is used for fetching \`${resourceName}\``;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
case EApiRouteType.GET_LIST: {
|
|
50
|
+
summary = `Fetching list of \`${resourceName}\``;
|
|
51
|
+
description = `This method is used for fetching list of \`${resourceName}\``;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
case EApiRouteType.PARTIAL_UPDATE: {
|
|
55
|
+
summary = `Partially updating \`${resourceName}\``;
|
|
56
|
+
description = `This method is used for partially updating \`${resourceName}\``;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
case EApiRouteType.UPDATE: {
|
|
60
|
+
summary = `Updating \`${resourceName}\``;
|
|
61
|
+
description = `This method is used for updating \`${resourceName}\``;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return {
|
|
66
|
+
description: options.documentation?.description ?? description,
|
|
67
|
+
operationId: options.documentation?.operationId,
|
|
68
|
+
summary: options.documentation?.summary ?? summary,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export { ApiControllerBuildRouteDocumentation };
|
|
73
|
+
//# sourceMappingURL=build-route-documentation.utility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-route-documentation.utility.js","sources":["../../../../../../src/utility/api/controller/build-route-documentation.utility.ts"],"sourcesContent":[null],"names":["EApiRouteTypeValue"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;AAOG;AACG,SAAU,oCAAoC,CAAC,OAA6G,EAAA;IACjK,MAAM,YAAY,GAAW,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;AACtE,IAAA,IAAI,OAAe;AACnB,IAAA,IAAI,WAAmB;AAEvB,IAAA,QAAQ,OAAO,CAAC,SAAS;AACxB,QAAA,KAAKA,aAAkB,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;AAEA,QAAA,KAAKA,aAAkB,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;AAEA,QAAA,KAAKA,aAAkB,CAAC,GAAG,EAAE;AAC5B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;AAEA,QAAA,KAAKA,aAAkB,CAAC,QAAQ,EAAE;AACjC,YAAA,OAAO,GAAG,CAAA,mBAAA,EAAsB,YAAY,CAAA,EAAA,CAAI;AAChD,YAAA,WAAW,GAAG,CAAA,2CAAA,EAA8C,YAAY,CAAA,EAAA,CAAI;YAE5E;QACD;AAEA,QAAA,KAAKA,aAAkB,CAAC,cAAc,EAAE;AACvC,YAAA,OAAO,GAAG,CAAA,qBAAA,EAAwB,YAAY,CAAA,EAAA,CAAI;AAClD,YAAA,WAAW,GAAG,CAAA,6CAAA,EAAgD,YAAY,CAAA,EAAA,CAAI;YAE9E;QACD;AAEA,QAAA,KAAKA,aAAkB,CAAC,MAAM,EAAE;AAC/B,YAAA,OAAO,GAAG,CAAA,WAAA,EAAc,YAAY,CAAA,EAAA,CAAI;AACxC,YAAA,WAAW,GAAG,CAAA,mCAAA,EAAsC,YAAY,CAAA,EAAA,CAAI;YAEpE;QACD;;IAGD,OAAO;AACN,QAAA,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW,IAAI,WAAW;AAC9D,QAAA,WAAW,EAAE,OAAO,CAAC,aAAa,EAAE,WAAW;AAC/C,QAAA,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE,OAAO,IAAI,OAAO;KAClD;AACF;;;;"}
|