hh-contracts 0.0.66 → 0.0.68
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/build/common/constants/index.js +1 -0
- package/build/common/constants/order-direction.constant.js +2 -1
- package/build/common/constants/role-types.constant.js +9 -0
- package/build/index.js +1 -0
- package/build/permissions/contracts/find-many-permission.contract.js +3 -2
- package/build/roles/contracts/create-role.contract.js +18 -0
- package/build/roles/contracts/delete-role.contract.js +13 -0
- package/build/roles/contracts/find-many-roles.contract.js +36 -0
- package/build/roles/contracts/find-role.contract.js +13 -0
- package/build/roles/contracts/index.js +21 -0
- package/build/roles/contracts/update-role.contract.js +15 -0
- package/build/roles/index.js +19 -0
- package/build/roles/role.models.js +31 -0
- package/build/roles/roles.api.js +15 -0
- package/common/constants/index.ts +1 -0
- package/common/constants/order-direction.constant.ts +4 -0
- package/common/constants/role-types.constant.ts +7 -0
- package/index.ts +1 -0
- package/package.json +1 -1
- package/permissions/contracts/find-many-permission.contract.ts +6 -8
- package/roles/contracts/create-role.contract.ts +20 -0
- package/roles/contracts/delete-role.contract.ts +13 -0
- package/roles/contracts/find-many-roles.contract.ts +45 -0
- package/roles/contracts/find-role.contract.ts +13 -0
- package/roles/contracts/index.ts +5 -0
- package/roles/contracts/update-role.contract.ts +17 -0
- package/roles/index.ts +3 -0
- package/roles/role.models.ts +38 -0
- package/roles/roles.api.ts +14 -0
|
@@ -23,6 +23,7 @@ __exportStar(require("./icon-keys.constant"), exports);
|
|
|
23
23
|
__exportStar(require("./entity.constant"), exports);
|
|
24
24
|
__exportStar(require("./navigation-item-type.constant"), exports);
|
|
25
25
|
__exportStar(require("./order-direction.constant"), exports);
|
|
26
|
+
__exportStar(require("./role-types.constant"), exports);
|
|
26
27
|
__exportStar(require("./route-component-key.constants"), exports);
|
|
27
28
|
__exportStar(require("./translatable-field.constant"), exports);
|
|
28
29
|
__exportStar(require("./zod-error-mapping.constant"), exports);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ORDER_DIRECTION = void 0;
|
|
3
|
+
exports.ORDER_DIRECTION_VALUES = exports.ORDER_DIRECTION = void 0;
|
|
4
4
|
exports.ORDER_DIRECTION = {
|
|
5
5
|
asc: 'asc',
|
|
6
6
|
desc: 'desc',
|
|
7
7
|
};
|
|
8
|
+
exports.ORDER_DIRECTION_VALUES = Object.values(exports.ORDER_DIRECTION);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ROLE_TYPE_VALUES = exports.ROLE_TYPES = void 0;
|
|
4
|
+
exports.ROLE_TYPES = {
|
|
5
|
+
system: 'system',
|
|
6
|
+
hotel: 'hotel',
|
|
7
|
+
guest: 'guest',
|
|
8
|
+
};
|
|
9
|
+
exports.ROLE_TYPE_VALUES = Object.values(exports.ROLE_TYPES);
|
package/build/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./common"), exports);
|
|
18
18
|
__exportStar(require("./app-menu"), exports);
|
|
19
19
|
__exportStar(require("./permissions"), exports);
|
|
20
|
+
__exportStar(require("./roles"), exports);
|
|
20
21
|
__exportStar(require("./translate"), exports);
|
|
@@ -9,8 +9,8 @@ const BaseQuerySchema = permission_models_1.PermissionListItemSchema.pick({
|
|
|
9
9
|
subject: true,
|
|
10
10
|
action: true,
|
|
11
11
|
}).partial();
|
|
12
|
-
const OrderBySchema = permission_models_1.PermissionListItemSchema.keyof()
|
|
13
|
-
const FindManyPermissionsContractRequestSchema = BaseQuerySchema.merge(common_1.CommonQueryParamsSchema).extend({ orderBy: OrderBySchema
|
|
12
|
+
const OrderBySchema = permission_models_1.PermissionListItemSchema.keyof();
|
|
13
|
+
const FindManyPermissionsContractRequestSchema = BaseQuerySchema.merge(common_1.CommonQueryParamsSchema).extend({ orderBy: OrderBySchema.optional() });
|
|
14
14
|
const FindManyPermissionsContractResponseSchema = zod_1.z
|
|
15
15
|
.object({
|
|
16
16
|
permissions: zod_1.z.array(permission_models_1.PermissionListItemSchema),
|
|
@@ -22,6 +22,7 @@ var FindManyPermissionsContract;
|
|
|
22
22
|
FindManyPermissionsContract.endpoint = permissions_api_1.PERMISSIONS_CONTROLLER.endpoints.findMany;
|
|
23
23
|
FindManyPermissionsContract.httpMethod = common_1.HTTP_METHODS.get;
|
|
24
24
|
FindManyPermissionsContract.BaseFilterSchema = BaseQuerySchema;
|
|
25
|
+
FindManyPermissionsContract.SORTING_KEYS = OrderBySchema.options;
|
|
25
26
|
FindManyPermissionsContract.RequestSchema = FindManyPermissionsContractRequestSchema;
|
|
26
27
|
FindManyPermissionsContract.ResponseSchema = FindManyPermissionsContractResponseSchema;
|
|
27
28
|
})(FindManyPermissionsContract || (exports.FindManyPermissionsContract = FindManyPermissionsContract = {}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateRoleContract = void 0;
|
|
4
|
+
const common_1 = require("../../common");
|
|
5
|
+
const role_models_1 = require("../role.models");
|
|
6
|
+
const roles_api_1 = require("../roles.api");
|
|
7
|
+
var CreateRoleContract;
|
|
8
|
+
(function (CreateRoleContract) {
|
|
9
|
+
CreateRoleContract.getUrl = roles_api_1.ROLES_API.create;
|
|
10
|
+
CreateRoleContract.endpoint = roles_api_1.ROLES_CONTROLLER.endpoints.create;
|
|
11
|
+
CreateRoleContract.httpMethod = common_1.HTTP_METHODS.post;
|
|
12
|
+
CreateRoleContract.RequestSchema = role_models_1.RoleWithTranslationsSchema.omit({
|
|
13
|
+
id: true,
|
|
14
|
+
createdAt: true,
|
|
15
|
+
updatedAt: true,
|
|
16
|
+
});
|
|
17
|
+
CreateRoleContract.ResponseSchema = role_models_1.RoleWithTranslationsSchema;
|
|
18
|
+
})(CreateRoleContract || (exports.CreateRoleContract = CreateRoleContract = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteRoleContract = void 0;
|
|
4
|
+
const common_1 = require("../../common");
|
|
5
|
+
const role_models_1 = require("../role.models");
|
|
6
|
+
const roles_api_1 = require("../roles.api");
|
|
7
|
+
var DeleteRoleContract;
|
|
8
|
+
(function (DeleteRoleContract) {
|
|
9
|
+
DeleteRoleContract.getUrl = roles_api_1.ROLES_API.delete;
|
|
10
|
+
DeleteRoleContract.endpoint = roles_api_1.ROLES_CONTROLLER.endpoints.delete;
|
|
11
|
+
DeleteRoleContract.httpMethod = common_1.HTTP_METHODS.delete;
|
|
12
|
+
DeleteRoleContract.ResponseSchema = role_models_1.RoleWithTranslationsSchema;
|
|
13
|
+
})(DeleteRoleContract || (exports.DeleteRoleContract = DeleteRoleContract = {}));
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindManyRolesContract = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const common_1 = require("../../common");
|
|
6
|
+
const role_models_1 = require("../role.models");
|
|
7
|
+
const roles_api_1 = require("../roles.api");
|
|
8
|
+
const BaseQuerySchema = role_models_1.RoleListItemSchema.pick({
|
|
9
|
+
type: true,
|
|
10
|
+
isActive: true,
|
|
11
|
+
})
|
|
12
|
+
.extend({ roleIds: zod_1.z.array(zod_1.z.string().uuid()).optional() })
|
|
13
|
+
.partial();
|
|
14
|
+
const OrderBySchema = role_models_1.RoleListItemSchema.omit({
|
|
15
|
+
id: true,
|
|
16
|
+
permissions: true,
|
|
17
|
+
description: true,
|
|
18
|
+
}).keyof();
|
|
19
|
+
const FindManyRolesContractRequestSchema = BaseQuerySchema.merge(common_1.CommonQueryParamsSchema).extend({
|
|
20
|
+
orderBy: OrderBySchema.optional(),
|
|
21
|
+
});
|
|
22
|
+
const FindManyRolesContractResponseSchema = zod_1.z
|
|
23
|
+
.object({
|
|
24
|
+
roles: zod_1.z.array(role_models_1.RoleListItemSchema),
|
|
25
|
+
})
|
|
26
|
+
.merge(common_1.PaginationResponseSchema);
|
|
27
|
+
var FindManyRolesContract;
|
|
28
|
+
(function (FindManyRolesContract) {
|
|
29
|
+
FindManyRolesContract.getUrl = roles_api_1.ROLES_API.findMany;
|
|
30
|
+
FindManyRolesContract.endpoint = roles_api_1.ROLES_CONTROLLER.endpoints.findMany;
|
|
31
|
+
FindManyRolesContract.httpMethod = common_1.HTTP_METHODS.get;
|
|
32
|
+
FindManyRolesContract.BaseFilterSchema = BaseQuerySchema;
|
|
33
|
+
FindManyRolesContract.SORTING_KEYS = OrderBySchema.options;
|
|
34
|
+
FindManyRolesContract.RequestSchema = FindManyRolesContractRequestSchema;
|
|
35
|
+
FindManyRolesContract.ResponseSchema = FindManyRolesContractResponseSchema;
|
|
36
|
+
})(FindManyRolesContract || (exports.FindManyRolesContract = FindManyRolesContract = {}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindRoleContract = void 0;
|
|
4
|
+
const common_1 = require("../../common");
|
|
5
|
+
const role_models_1 = require("../role.models");
|
|
6
|
+
const roles_api_1 = require("../roles.api");
|
|
7
|
+
var FindRoleContract;
|
|
8
|
+
(function (FindRoleContract) {
|
|
9
|
+
FindRoleContract.getUrl = roles_api_1.ROLES_API.find;
|
|
10
|
+
FindRoleContract.endpoint = roles_api_1.ROLES_CONTROLLER.endpoints.find;
|
|
11
|
+
FindRoleContract.httpMethod = common_1.HTTP_METHODS.get;
|
|
12
|
+
FindRoleContract.ResponseSchema = role_models_1.RoleWithTranslationsSchema;
|
|
13
|
+
})(FindRoleContract || (exports.FindRoleContract = FindRoleContract = {}));
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./create-role.contract"), exports);
|
|
18
|
+
__exportStar(require("./delete-role.contract"), exports);
|
|
19
|
+
__exportStar(require("./update-role.contract"), exports);
|
|
20
|
+
__exportStar(require("./find-role.contract"), exports);
|
|
21
|
+
__exportStar(require("./find-many-roles.contract"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateRoleContract = void 0;
|
|
4
|
+
const common_1 = require("../../common");
|
|
5
|
+
const role_models_1 = require("../role.models");
|
|
6
|
+
const roles_api_1 = require("../roles.api");
|
|
7
|
+
const create_role_contract_1 = require("./create-role.contract");
|
|
8
|
+
var UpdateRoleContract;
|
|
9
|
+
(function (UpdateRoleContract) {
|
|
10
|
+
UpdateRoleContract.getUrl = roles_api_1.ROLES_API.update;
|
|
11
|
+
UpdateRoleContract.endpoint = roles_api_1.ROLES_CONTROLLER.endpoints.update;
|
|
12
|
+
UpdateRoleContract.httpMethod = common_1.HTTP_METHODS.put;
|
|
13
|
+
UpdateRoleContract.RequestSchema = create_role_contract_1.CreateRoleContract.RequestSchema;
|
|
14
|
+
UpdateRoleContract.ResponseSchema = role_models_1.RoleWithTranslationsSchema;
|
|
15
|
+
})(UpdateRoleContract || (exports.UpdateRoleContract = UpdateRoleContract = {}));
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./role.models"), exports);
|
|
18
|
+
__exportStar(require("./roles.api"), exports);
|
|
19
|
+
__exportStar(require("./contracts"), exports);
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RoleListItemSchema = exports.RoleWithTranslationsSchema = exports.RoleWithPermissionsSchema = exports.RolePersistedSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const common_1 = require("../common");
|
|
6
|
+
const permissions_1 = require("../permissions");
|
|
7
|
+
exports.RolePersistedSchema = zod_1.z
|
|
8
|
+
.object({
|
|
9
|
+
id: zod_1.z.string().uuid(),
|
|
10
|
+
type: zod_1.z.enum(common_1.ROLE_TYPE_VALUES),
|
|
11
|
+
isActive: zod_1.z.boolean().default(true),
|
|
12
|
+
isDefault: zod_1.z.boolean().default(false),
|
|
13
|
+
})
|
|
14
|
+
.merge(common_1.TimestampSchema);
|
|
15
|
+
exports.RoleWithPermissionsSchema = exports.RolePersistedSchema.extend({
|
|
16
|
+
permissionIds: zod_1.z.array(zod_1.z.string().uuid()),
|
|
17
|
+
});
|
|
18
|
+
exports.RoleWithTranslationsSchema = exports.RoleWithPermissionsSchema.extend({
|
|
19
|
+
translations: common_1.TranslationsSchema.pick({
|
|
20
|
+
name: true,
|
|
21
|
+
description: true,
|
|
22
|
+
}).partial({ description: true }),
|
|
23
|
+
});
|
|
24
|
+
exports.RoleListItemSchema = exports.RolePersistedSchema.extend({
|
|
25
|
+
name: zod_1.z.string().nullable(),
|
|
26
|
+
description: zod_1.z.string().nullable(),
|
|
27
|
+
permissions: zod_1.z.array(permissions_1.PermissionListItemSchema.pick({
|
|
28
|
+
id: true,
|
|
29
|
+
name: true,
|
|
30
|
+
})),
|
|
31
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ROLES_API = exports.ROLES_CONTROLLER = void 0;
|
|
4
|
+
const utils_1 = require("../common/utils");
|
|
5
|
+
exports.ROLES_CONTROLLER = {
|
|
6
|
+
prefix: 'roles',
|
|
7
|
+
endpoints: {
|
|
8
|
+
find: ':id',
|
|
9
|
+
findMany: '',
|
|
10
|
+
create: '',
|
|
11
|
+
update: ':id',
|
|
12
|
+
delete: ':id',
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
exports.ROLES_API = (0, utils_1.createApi)(exports.ROLES_CONTROLLER);
|
|
@@ -7,6 +7,7 @@ export * from './icon-keys.constant';
|
|
|
7
7
|
export * from './entity.constant';
|
|
8
8
|
export * from './navigation-item-type.constant';
|
|
9
9
|
export * from './order-direction.constant';
|
|
10
|
+
export * from './role-types.constant';
|
|
10
11
|
export * from './route-component-key.constants';
|
|
11
12
|
export * from './translatable-field.constant';
|
|
12
13
|
export * from './zod-error-mapping.constant';
|
package/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
3
|
-
HTTP_METHODS,
|
|
4
|
-
CommonQueryParamsSchema,
|
|
5
|
-
PaginationResponseSchema,
|
|
6
|
-
LANGUAGE_KEYS,
|
|
7
|
-
} from '../../common';
|
|
2
|
+
import { HTTP_METHODS, CommonQueryParamsSchema, PaginationResponseSchema } from '../../common';
|
|
8
3
|
import { PermissionListItemSchema } from '../permission.models';
|
|
9
4
|
import { PERMISSIONS_API, PERMISSIONS_CONTROLLER } from '../permissions.api';
|
|
10
5
|
|
|
@@ -13,11 +8,11 @@ const BaseQuerySchema = PermissionListItemSchema.pick({
|
|
|
13
8
|
action: true,
|
|
14
9
|
}).partial();
|
|
15
10
|
|
|
16
|
-
const OrderBySchema = PermissionListItemSchema.keyof()
|
|
11
|
+
const OrderBySchema = PermissionListItemSchema.keyof();
|
|
17
12
|
|
|
18
13
|
const FindManyPermissionsContractRequestSchema = BaseQuerySchema.merge(
|
|
19
14
|
CommonQueryParamsSchema,
|
|
20
|
-
).extend({ orderBy: OrderBySchema
|
|
15
|
+
).extend({ orderBy: OrderBySchema.optional() });
|
|
21
16
|
|
|
22
17
|
const FindManyPermissionsContractResponseSchema = z
|
|
23
18
|
.object({
|
|
@@ -33,6 +28,9 @@ export namespace FindManyPermissionsContract {
|
|
|
33
28
|
export const BaseFilterSchema = BaseQuerySchema;
|
|
34
29
|
export type TBaseFilter = z.infer<typeof BaseFilterSchema>;
|
|
35
30
|
|
|
31
|
+
export const SORTING_KEYS = OrderBySchema.options;
|
|
32
|
+
export type TSortingKey = z.infer<typeof OrderBySchema>;
|
|
33
|
+
|
|
36
34
|
export const RequestSchema = FindManyPermissionsContractRequestSchema;
|
|
37
35
|
export type TRequest = z.infer<typeof RequestSchema>;
|
|
38
36
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HTTP_METHODS } from '../../common';
|
|
3
|
+
import { RoleWithTranslationsSchema } from '../role.models';
|
|
4
|
+
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
+
|
|
6
|
+
export namespace CreateRoleContract {
|
|
7
|
+
export const getUrl = ROLES_API.create;
|
|
8
|
+
export const endpoint = ROLES_CONTROLLER.endpoints.create;
|
|
9
|
+
export const httpMethod = HTTP_METHODS.post;
|
|
10
|
+
|
|
11
|
+
export const RequestSchema = RoleWithTranslationsSchema.omit({
|
|
12
|
+
id: true,
|
|
13
|
+
createdAt: true,
|
|
14
|
+
updatedAt: true,
|
|
15
|
+
});
|
|
16
|
+
export type TRequest = z.infer<typeof RequestSchema>;
|
|
17
|
+
|
|
18
|
+
export const ResponseSchema = RoleWithTranslationsSchema;
|
|
19
|
+
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HTTP_METHODS } from '../../common';
|
|
3
|
+
import { RoleWithTranslationsSchema } from '../role.models';
|
|
4
|
+
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
+
|
|
6
|
+
export namespace DeleteRoleContract {
|
|
7
|
+
export const getUrl = ROLES_API.delete;
|
|
8
|
+
export const endpoint = ROLES_CONTROLLER.endpoints.delete;
|
|
9
|
+
export const httpMethod = HTTP_METHODS.delete;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = RoleWithTranslationsSchema;
|
|
12
|
+
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HTTP_METHODS, CommonQueryParamsSchema, PaginationResponseSchema } from '../../common';
|
|
3
|
+
import { RoleListItemSchema } from '../role.models';
|
|
4
|
+
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
+
|
|
6
|
+
const BaseQuerySchema = RoleListItemSchema.pick({
|
|
7
|
+
type: true,
|
|
8
|
+
isActive: true,
|
|
9
|
+
})
|
|
10
|
+
.extend({ roleIds: z.array(z.string().uuid()).optional() })
|
|
11
|
+
.partial();
|
|
12
|
+
|
|
13
|
+
const OrderBySchema = RoleListItemSchema.omit({
|
|
14
|
+
id: true,
|
|
15
|
+
permissions: true,
|
|
16
|
+
description: true,
|
|
17
|
+
}).keyof();
|
|
18
|
+
|
|
19
|
+
const FindManyRolesContractRequestSchema = BaseQuerySchema.merge(CommonQueryParamsSchema).extend({
|
|
20
|
+
orderBy: OrderBySchema.optional(),
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
const FindManyRolesContractResponseSchema = z
|
|
24
|
+
.object({
|
|
25
|
+
roles: z.array(RoleListItemSchema),
|
|
26
|
+
})
|
|
27
|
+
.merge(PaginationResponseSchema);
|
|
28
|
+
|
|
29
|
+
export namespace FindManyRolesContract {
|
|
30
|
+
export const getUrl = ROLES_API.findMany;
|
|
31
|
+
export const endpoint = ROLES_CONTROLLER.endpoints.findMany;
|
|
32
|
+
export const httpMethod = HTTP_METHODS.get;
|
|
33
|
+
|
|
34
|
+
export const BaseFilterSchema = BaseQuerySchema;
|
|
35
|
+
export type TBaseFilter = z.infer<typeof BaseFilterSchema>;
|
|
36
|
+
|
|
37
|
+
export const SORTING_KEYS = OrderBySchema.options;
|
|
38
|
+
export type TSortingKey = z.infer<typeof OrderBySchema>;
|
|
39
|
+
|
|
40
|
+
export const RequestSchema = FindManyRolesContractRequestSchema;
|
|
41
|
+
export type TRequest = z.infer<typeof RequestSchema>;
|
|
42
|
+
|
|
43
|
+
export const ResponseSchema = FindManyRolesContractResponseSchema;
|
|
44
|
+
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HTTP_METHODS } from '../../common';
|
|
3
|
+
import { RoleWithTranslationsSchema } from '../role.models';
|
|
4
|
+
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
+
|
|
6
|
+
export namespace FindRoleContract {
|
|
7
|
+
export const getUrl = ROLES_API.find;
|
|
8
|
+
export const endpoint = ROLES_CONTROLLER.endpoints.find;
|
|
9
|
+
export const httpMethod = HTTP_METHODS.get;
|
|
10
|
+
|
|
11
|
+
export const ResponseSchema = RoleWithTranslationsSchema;
|
|
12
|
+
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HTTP_METHODS } from '../../common';
|
|
3
|
+
import { RoleWithTranslationsSchema } from '../role.models';
|
|
4
|
+
import { ROLES_API, ROLES_CONTROLLER } from '../roles.api';
|
|
5
|
+
import { CreateRoleContract } from './create-role.contract';
|
|
6
|
+
|
|
7
|
+
export namespace UpdateRoleContract {
|
|
8
|
+
export const getUrl = ROLES_API.update;
|
|
9
|
+
export const endpoint = ROLES_CONTROLLER.endpoints.update;
|
|
10
|
+
export const httpMethod = HTTP_METHODS.put;
|
|
11
|
+
|
|
12
|
+
export const RequestSchema = CreateRoleContract.RequestSchema;
|
|
13
|
+
export type TRequest = z.infer<typeof RequestSchema>;
|
|
14
|
+
|
|
15
|
+
export const ResponseSchema = RoleWithTranslationsSchema;
|
|
16
|
+
export type TResponse = z.infer<typeof ResponseSchema>;
|
|
17
|
+
}
|
package/roles/index.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ROLE_TYPE_VALUES, TimestampSchema, TranslationsSchema } from '../common';
|
|
3
|
+
import { PermissionListItemSchema } from '../permissions';
|
|
4
|
+
|
|
5
|
+
export const RolePersistedSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
id: z.string().uuid(),
|
|
8
|
+
type: z.enum(ROLE_TYPE_VALUES),
|
|
9
|
+
isActive: z.boolean().default(true),
|
|
10
|
+
isDefault: z.boolean().default(false),
|
|
11
|
+
})
|
|
12
|
+
.merge(TimestampSchema);
|
|
13
|
+
export type TRolePersisted = z.infer<typeof RolePersistedSchema>;
|
|
14
|
+
|
|
15
|
+
export const RoleWithPermissionsSchema = RolePersistedSchema.extend({
|
|
16
|
+
permissionIds: z.array(z.string().uuid()),
|
|
17
|
+
});
|
|
18
|
+
export type TRoleWithPermissions = z.infer<typeof RoleWithPermissionsSchema>;
|
|
19
|
+
|
|
20
|
+
export const RoleWithTranslationsSchema = RoleWithPermissionsSchema.extend({
|
|
21
|
+
translations: TranslationsSchema.pick({
|
|
22
|
+
name: true,
|
|
23
|
+
description: true,
|
|
24
|
+
}).partial({ description: true }),
|
|
25
|
+
});
|
|
26
|
+
export type TRoleWithTranslations = z.infer<typeof RoleWithTranslationsSchema>;
|
|
27
|
+
|
|
28
|
+
export const RoleListItemSchema = RolePersistedSchema.extend({
|
|
29
|
+
name: z.string().nullable(),
|
|
30
|
+
description: z.string().nullable(),
|
|
31
|
+
permissions: z.array(
|
|
32
|
+
PermissionListItemSchema.pick({
|
|
33
|
+
id: true,
|
|
34
|
+
name: true,
|
|
35
|
+
}),
|
|
36
|
+
),
|
|
37
|
+
});
|
|
38
|
+
export type TRoleListItem = z.infer<typeof RoleListItemSchema>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createApi, TController } from '../common/utils';
|
|
2
|
+
|
|
3
|
+
export const ROLES_CONTROLLER = {
|
|
4
|
+
prefix: 'roles',
|
|
5
|
+
endpoints: {
|
|
6
|
+
find: ':id',
|
|
7
|
+
findMany: '',
|
|
8
|
+
create: '',
|
|
9
|
+
update: ':id',
|
|
10
|
+
delete: ':id',
|
|
11
|
+
},
|
|
12
|
+
} as const satisfies TController;
|
|
13
|
+
|
|
14
|
+
export const ROLES_API = createApi(ROLES_CONTROLLER);
|