create-arkos 2.0.0-next.17 → 2.0.0-next.18
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/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/project-config-inquirer.js +40 -33
- package/dist/utils/project-config-inquirer.js.map +1 -1
- package/dist/utils/template-compiler.js +16 -11
- package/dist/utils/template-compiler.js.map +1 -1
- package/package.json +1 -1
- package/templates/basic/.env.hbs +5 -1
- package/templates/basic/README.md.hbs +1 -1
- package/templates/basic/arkos.config.ts.hbs +16 -3
- package/templates/basic/package.json.hbs +4 -2
- package/templates/basic/prisma/schema/__tests__/user-role.prisma.hbs.test.ts +2 -2
- package/templates/basic/prisma/schema/__tests__/user.prisma.hbs.test.ts +2 -2
- package/templates/basic/prisma/schema/auth-permission.prisma.hbs +3 -9
- package/templates/basic/prisma/schema/auth-role.prisma.hbs +2 -2
- package/templates/basic/prisma/schema/user-permission.prisma.hbs +18 -0
- package/templates/basic/prisma/schema/user.prisma.hbs +4 -2
- package/templates/basic/public/favicon.ico +0 -0
- package/templates/basic/src/app.ts.hbs +9 -7
- package/templates/basic/src/modules/auth/auth.policy.ts.hbs +1 -1
- package/templates/basic/src/modules/auth/auth.router.ts.hbs +72 -7
- package/templates/basic/src/modules/auth-permission/auth-permission.router.ts.hbs +39 -7
- package/templates/basic/src/modules/auth-permission/dtos/create-auth-permission.dto.ts.hbs +5 -4
- package/templates/basic/src/modules/auth-permission/dtos/update-auth-permission.dto.ts.hbs +16 -3
- package/templates/basic/src/modules/auth-role/auth-role.router.ts.hbs +38 -6
- package/templates/basic/src/modules/auth-role/dtos/update-auth-role.dto.ts.hbs +1 -0
- package/templates/basic/src/modules/file-upload/file-upload.router.ts.hbs +28 -8
- package/templates/basic/src/modules/user/user.router.ts.hbs +91 -7
- package/templates/basic/src/router.ts.hbs +2 -2
- package/templates/basic/src/server.ts.hbs +8 -0
- package/templates/basic/src/utils/validation/api-actions.ts.hbs +1 -1
- package/templates/basic/tsconfig.json.hbs +1 -1
- package/templates/basic/src/loadables.ts.hbs +0 -29
- package/templates/basic/src/modules/auth/auth.route-hook.ts.hbs +0 -66
- package/templates/basic/src/modules/auth-permission/auth-permission.route-hook.ts.hbs +0 -35
- package/templates/basic/src/modules/auth-role/auth-role.route-hook.ts.hbs +0 -35
- package/templates/basic/src/modules/file-upload/file-upload.route-hook.ts.hbs +0 -23
- package/templates/basic/src/modules/user/user.route-hook.ts.hbs +0 -88
- /package/templates/basic/src/modules/auth-permission/dtos/{query-auth-role.dto.ts.hbs → query-auth-permission.dto.ts.hbs} +0 -0
|
@@ -1,11 +1,76 @@
|
|
|
1
|
-
import { ArkosRouter } from
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import authPolicy from
|
|
1
|
+
import { ArkosRouter, ArkosRouteHook } from 'arkos';
|
|
2
|
+
{{#if (neq authentication.type "none")}}
|
|
3
|
+
import authPolicy from '@/src/modules/auth/auth.policy';
|
|
4
4
|
{{/if}}
|
|
5
|
+
{{#if validation.type}}
|
|
6
|
+
import LoginDto from '@/src/modules/auth/dtos/login.dto';
|
|
7
|
+
import SignupDto from '@/src/modules/auth/dtos/signup.dto';
|
|
8
|
+
import UpdateMeDto from '@/src/modules/auth/dtos/update-me.dto';
|
|
9
|
+
import UpdatePasswordDto from '@/src/modules/auth/dtos/update-password.dto';
|
|
10
|
+
{{/if}}
|
|
11
|
+
|
|
12
|
+
const authRouteHook = ArkosRouteHook("auth");
|
|
13
|
+
|
|
14
|
+
authRouteHook.login({
|
|
15
|
+
{{#if validation.type}}validation: { body: LoginDto },{{/if}}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
authRouteHook.signup({
|
|
19
|
+
{{#if validation.type}}validation: { body: SignupDto },{{/if}}
|
|
20
|
+
prismaArgs: {
|
|
21
|
+
omit: { password: true },
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
authRouteHook.getMe({
|
|
26
|
+
prismaArgs: {
|
|
27
|
+
omit: { password: true },
|
|
28
|
+
{{#if (eq authentication.type "dynamic")}}
|
|
29
|
+
include: {
|
|
30
|
+
{{#if authentication.multipleRoles}}
|
|
31
|
+
roles: {
|
|
32
|
+
include: {
|
|
33
|
+
role: {
|
|
34
|
+
include: {
|
|
35
|
+
permissions: true,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
{{else}}
|
|
41
|
+
role: {
|
|
42
|
+
include: {
|
|
43
|
+
role: {
|
|
44
|
+
include: {
|
|
45
|
+
permissions: true,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
{{/if}}
|
|
51
|
+
},
|
|
52
|
+
{{/if}}
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
authRouteHook.updateMe({
|
|
57
|
+
{{#if validation.type}}validation: { body: UpdateMeDto },{{/if}}
|
|
58
|
+
prismaArgs: {
|
|
59
|
+
omit: { password: true },
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
authRouteHook.updatePassword({
|
|
64
|
+
{{#if validation.type}}validation: { body: UpdatePasswordDto },{{/if}}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
authRouteHook.logout({});
|
|
68
|
+
|
|
69
|
+
const authRouter = ArkosRouter({
|
|
70
|
+
prefix: "/auth",
|
|
71
|
+
openapi: { tags: ["Authentication"] },
|
|
72
|
+
});
|
|
5
73
|
|
|
6
|
-
|
|
7
|
-
prefix: "/auth",
|
|
8
|
-
openapi: { tags: ["Authentication"] }
|
|
9
|
-
});
|
|
74
|
+
authRouter.load(authRouteHook);
|
|
10
75
|
|
|
11
76
|
export default authRouter;
|
|
@@ -1,11 +1,43 @@
|
|
|
1
|
-
import { ArkosRouter } from
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import authPermissionPolicy from
|
|
1
|
+
import { ArkosRouter, ArkosRouteHook } from 'arkos';
|
|
2
|
+
{{#if (neq authentication.type "none")}}
|
|
3
|
+
import authPermissionPolicy from '@/src/modules/auth-permission/auth-permission.policy';
|
|
4
4
|
{{/if}}
|
|
5
|
+
{{#if validation.type}}
|
|
6
|
+
import CreateAuthPermissionDto from '@/src/modules/auth-permission/dtos/create-auth-permission.dto';
|
|
7
|
+
import UpdateAuthPermissionDto from '@/src/modules/auth-permission/dtos/update-auth-permission.dto';
|
|
8
|
+
import QueryAuthPermissionDto from '@/src/modules/auth-permission/dtos/query-auth-permission.dto';
|
|
9
|
+
{{/if}}
|
|
10
|
+
|
|
11
|
+
const authPermissionRouteHook = ArkosRouteHook("auth-permission");
|
|
12
|
+
|
|
13
|
+
authPermissionRouteHook.createOne({
|
|
14
|
+
{{#if validation.type}}validation: { body: CreateAuthPermissionDto },{{/if}}
|
|
15
|
+
{{#if (neq authentication.type "none")}}authentication: authPermissionPolicy.Create,{{/if}}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
authPermissionRouteHook.findOne({
|
|
19
|
+
{{#if (neq authentication.type "none")}}authentication: authPermissionPolicy.View,{{/if}}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
authPermissionRouteHook.findMany({
|
|
23
|
+
{{#if validation.type}}validation: { query: QueryAuthPermissionDto },{{/if}}
|
|
24
|
+
{{#if (neq authentication.type "none")}}authentication: authPermissionPolicy.View,{{/if}}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
authPermissionRouteHook.updateOne({
|
|
28
|
+
{{#if validation.type}}validation: { body: UpdateAuthPermissionDto },{{/if}}
|
|
29
|
+
{{#if (neq authentication.type "none")}}authentication: authPermissionPolicy.Update,{{/if}}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
authPermissionRouteHook.deleteOne({
|
|
33
|
+
{{#if (neq authentication.type "none")}}authentication: authPermissionPolicy.Delete,{{/if}}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const authPermissionRouter = ArkosRouter({
|
|
37
|
+
prefix: "/auth-permissions",
|
|
38
|
+
openapi: { tags: ["Auth Permissions"] },
|
|
39
|
+
});
|
|
5
40
|
|
|
6
|
-
|
|
7
|
-
prefix: "/auth-permissions",
|
|
8
|
-
openapi: { tags: ["Auth Permissions"] }
|
|
9
|
-
});
|
|
41
|
+
authPermissionRouter.load(authPermissionRouteHook);
|
|
10
42
|
|
|
11
43
|
export default authPermissionRouter;
|
|
@@ -4,9 +4,9 @@ import { z } from 'zod';
|
|
|
4
4
|
const CreateAuthPermissionDto = z.object({
|
|
5
5
|
resource: z.string().min(1, 'Resource is required'),
|
|
6
6
|
action: z.string().default('View'),
|
|
7
|
-
|
|
7
|
+
roles: z.array(z.object({
|
|
8
8
|
id: z.string().min(1, 'Role ID is required'),
|
|
9
|
-
}),
|
|
9
|
+
})).optional(),
|
|
10
10
|
description: z.string().optional(),
|
|
11
11
|
});
|
|
12
12
|
|
|
@@ -16,7 +16,7 @@ export type CreateAuthPermissionDtoType = z.infer<typeof CreateAuthPermissionDto
|
|
|
16
16
|
{{/if}}
|
|
17
17
|
{{/if}}
|
|
18
18
|
{{#if (eq validation.type "class-validator")}}
|
|
19
|
-
import { IsString, IsNotEmpty, IsOptional,
|
|
19
|
+
import { IsString, IsNotEmpty, IsOptional, IsArray, ValidateNested } from 'class-validator';
|
|
20
20
|
import { Type, Transform } from 'class-transformer';
|
|
21
21
|
import 'reflect-metadata';
|
|
22
22
|
|
|
@@ -35,7 +35,8 @@ export default class CreateAuthPermissionDto {
|
|
|
35
35
|
@Transform(({ value }) => value || 'View')
|
|
36
36
|
action?: string = 'View';
|
|
37
37
|
|
|
38
|
-
@ValidateNested()
|
|
38
|
+
@ValidateNested({ each: true })
|
|
39
|
+
@IsArray()
|
|
39
40
|
@Type(() => RoleConnectDto)
|
|
40
41
|
@IsOptional()
|
|
41
42
|
roles?: RoleConnectDto[];
|
|
@@ -5,6 +5,9 @@ const UpdateAuthPermissionDto = z.object({
|
|
|
5
5
|
resource: z.string().optional(),
|
|
6
6
|
action: z.string().optional(),
|
|
7
7
|
description: z.string().optional(),
|
|
8
|
+
roles: z.array(z.object({
|
|
9
|
+
id: z.string().min(1, 'Role ID is required'),
|
|
10
|
+
})).optional(),
|
|
8
11
|
});
|
|
9
12
|
|
|
10
13
|
export default UpdateAuthPermissionDto;
|
|
@@ -13,10 +16,16 @@ export type UpdateAuthPermissionDtoType = z.infer<typeof UpdateAuthPermissionDto
|
|
|
13
16
|
{{/if}}
|
|
14
17
|
{{/if}}
|
|
15
18
|
{{#if (eq validation.type "class-validator")}}
|
|
16
|
-
import { IsString, IsOptional } from 'class-validator';
|
|
17
|
-
import { Transform } from 'class-transformer';
|
|
19
|
+
import { IsString, IsOptional, IsArray, ValidateNested } from 'class-validator';
|
|
20
|
+
import { Transform, Type } from 'class-transformer';
|
|
18
21
|
import 'reflect-metadata';
|
|
19
22
|
|
|
23
|
+
class RoleConnectDto {
|
|
24
|
+
@IsString()
|
|
25
|
+
@IsNotEmpty({ message: 'Role ID is required' })
|
|
26
|
+
id!: string;
|
|
27
|
+
}
|
|
28
|
+
|
|
20
29
|
export default class UpdateAuthPermissionDto {
|
|
21
30
|
@IsOptional()
|
|
22
31
|
@IsString()
|
|
@@ -25,7 +34,11 @@ export default class UpdateAuthPermissionDto {
|
|
|
25
34
|
@IsOptional()
|
|
26
35
|
@IsString()
|
|
27
36
|
@Transform(({ value }) => String(value))
|
|
28
|
-
action?: string
|
|
37
|
+
action?: string;
|
|
38
|
+
|
|
39
|
+
@IsOptional()
|
|
40
|
+
@IsString()
|
|
41
|
+
description?: string;
|
|
29
42
|
|
|
30
43
|
@ValidateNested({ each: true })
|
|
31
44
|
@IsArray()
|
|
@@ -1,11 +1,43 @@
|
|
|
1
|
-
import { ArkosRouter } from
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import authRolePolicy from
|
|
1
|
+
import { ArkosRouter, ArkosRouteHook } from 'arkos';
|
|
2
|
+
{{#if (neq authentication.type "none")}}
|
|
3
|
+
import authRolePolicy from '@/src/modules/auth-role/auth-role.policy';
|
|
4
4
|
{{/if}}
|
|
5
|
+
{{#if validation.type}}
|
|
6
|
+
import CreateAuthRoleDto from '@/src/modules/auth-role/dtos/create-auth-role.dto';
|
|
7
|
+
import UpdateAuthRoleDto from '@/src/modules/auth-role/dtos/update-auth-role.dto';
|
|
8
|
+
import QueryAuthRoleDto from '@/src/modules/auth-role/dtos/query-auth-role.dto';
|
|
9
|
+
{{/if}}
|
|
10
|
+
|
|
11
|
+
const authRoleRouteHook = ArkosRouteHook("auth-role");
|
|
12
|
+
|
|
13
|
+
authRoleRouteHook.createOne({
|
|
14
|
+
{{#if validation.type}}validation: { body: CreateAuthRoleDto },{{/if}}
|
|
15
|
+
{{#if (neq authentication.type "none")}}authentication: authRolePolicy.Create,{{/if}}
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
authRoleRouteHook.findOne({
|
|
19
|
+
{{#if (neq authentication.type "none")}}authentication: authRolePolicy.View,{{/if}}
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
authRoleRouteHook.findMany({
|
|
23
|
+
{{#if validation.type}}validation: { query: QueryAuthRoleDto },{{/if}}
|
|
24
|
+
{{#if (neq authentication.type "none")}}authentication: authRolePolicy.View,{{/if}}
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
authRoleRouteHook.updateOne({
|
|
28
|
+
{{#if validation.type}}validation: { body: UpdateAuthRoleDto },{{/if}}
|
|
29
|
+
{{#if (neq authentication.type "none")}}authentication: authRolePolicy.Update,{{/if}}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
authRoleRouteHook.deleteOne({
|
|
33
|
+
{{#if (neq authentication.type "none")}}authentication: authRolePolicy.Delete,{{/if}}
|
|
34
|
+
});
|
|
5
35
|
|
|
6
36
|
const authRoleRouter = ArkosRouter({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
37
|
+
prefix: "/auth-roles",
|
|
38
|
+
openapi: { tags: ["Auth Roles"] },
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
authRoleRouter.load(authRoleRouteHook);
|
|
10
42
|
|
|
11
43
|
export default authRoleRouter;
|
|
@@ -1,12 +1,32 @@
|
|
|
1
|
-
import { ArkosRouter } from
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import fileUploadPolicy from
|
|
1
|
+
import { ArkosRouter, ArkosRouteHook } from 'arkos';
|
|
2
|
+
{{#if (neq authentication.type "none")}}
|
|
3
|
+
import fileUploadPolicy from '@/src/modules/file-upload/file-upload.policy';
|
|
4
4
|
{{/if}}
|
|
5
|
-
import config from
|
|
5
|
+
import config from '@/arkos.config';
|
|
6
6
|
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
7
|
+
const fileUploadRouteHook = ArkosRouteHook("file-upload");
|
|
8
|
+
|
|
9
|
+
fileUploadRouteHook.findFile({
|
|
10
|
+
{{#if (neq authentication.type "none")}}authentication: fileUploadPolicy.View,{{/if}}
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
fileUploadRouteHook.uploadFile({
|
|
14
|
+
{{#if (neq authentication.type "none")}}authentication: fileUploadPolicy.Create,{{/if}}
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
fileUploadRouteHook.updateFile({
|
|
18
|
+
{{#if (neq authentication.type "none")}}authentication: fileUploadPolicy.Update,{{/if}}
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
fileUploadRouteHook.deleteFile({
|
|
22
|
+
{{#if (neq authentication.type "none")}}authentication: fileUploadPolicy.Delete,{{/if}}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const fileUploadRouter = ArkosRouter({
|
|
26
|
+
prefix: config?.fileUpload?.baseRoute,
|
|
27
|
+
openapi: { tags: ["File Uploads"] },
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
fileUploadRouter.load(fileUploadRouteHook);
|
|
11
31
|
|
|
12
32
|
export default fileUploadRouter;
|
|
@@ -1,11 +1,95 @@
|
|
|
1
|
-
import { ArkosRouter } from
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import userPolicy from
|
|
1
|
+
import { ArkosRouter, ArkosRouteHook } from 'arkos';
|
|
2
|
+
{{#if (neq authentication.type "none")}}
|
|
3
|
+
import userPolicy from '@/src/modules/user/user.policy';
|
|
4
4
|
{{/if}}
|
|
5
|
+
{{#if validation.type}}
|
|
6
|
+
import CreateUserDto from '@/src/modules/user/dtos/create-user.dto';
|
|
7
|
+
import UpdateUserDto from '@/src/modules/user/dtos/update-user.dto';
|
|
8
|
+
{{/if}}
|
|
9
|
+
|
|
10
|
+
const userRouteHook = ArkosRouteHook("user");
|
|
11
|
+
|
|
12
|
+
userRouteHook.createOne({
|
|
13
|
+
{{#if validation.type}}validation: { body: CreateUserDto },{{/if}}
|
|
14
|
+
{{#if (neq authentication.type "none")}}authentication: userPolicy.Create,{{/if}}
|
|
15
|
+
prismaArgs: {
|
|
16
|
+
omit: { password: true },
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
userRouteHook.findOne({
|
|
21
|
+
{{#if (neq authentication.type "none")}}authentication: userPolicy.View,{{/if}}
|
|
22
|
+
prismaArgs: {
|
|
23
|
+
omit: { password: true },
|
|
24
|
+
{{#if (eq authentication.type "dynamic")}}
|
|
25
|
+
include: {
|
|
26
|
+
{{#if authentication.multipleRoles}}
|
|
27
|
+
roles: {
|
|
28
|
+
include: {
|
|
29
|
+
role: {
|
|
30
|
+
include: {
|
|
31
|
+
permissions: true,
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
{{else}}
|
|
37
|
+
role: {
|
|
38
|
+
include: {
|
|
39
|
+
role: {
|
|
40
|
+
include: {
|
|
41
|
+
permissions: true,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{{/if}}
|
|
47
|
+
},
|
|
48
|
+
{{/if}}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
userRouteHook.findMany({
|
|
53
|
+
{{#if (neq authentication.type "none")}}authentication: userPolicy.View,{{/if}}
|
|
54
|
+
prismaArgs: {
|
|
55
|
+
omit: { password: true },
|
|
56
|
+
{{#if (eq authentication.type "dynamic")}}
|
|
57
|
+
include: {
|
|
58
|
+
{{#if authentication.multipleRoles}}
|
|
59
|
+
roles: {
|
|
60
|
+
include: {
|
|
61
|
+
role: true,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
{{else}}
|
|
65
|
+
role: {
|
|
66
|
+
include: {
|
|
67
|
+
role: true,
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
{{/if}}
|
|
71
|
+
},
|
|
72
|
+
{{/if}}
|
|
73
|
+
},
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
userRouteHook.updateOne({
|
|
77
|
+
{{#if validation.type}}validation: { body: UpdateUserDto },{{/if}}
|
|
78
|
+
{{#if (neq authentication.type "none")}}authentication: userPolicy.Update,{{/if}}
|
|
79
|
+
prismaArgs: {
|
|
80
|
+
omit: { password: true },
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
userRouteHook.deleteOne({
|
|
85
|
+
{{#if (neq authentication.type "none")}}authentication: userPolicy.Delete,{{/if}}
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
const userRouter = ArkosRouter({
|
|
89
|
+
prefix: "/users",
|
|
90
|
+
openapi: { tags: ["Users"] },
|
|
91
|
+
});
|
|
5
92
|
|
|
6
|
-
|
|
7
|
-
prefix: "/users",
|
|
8
|
-
openapi: { tags: ["Users"] }
|
|
9
|
-
});
|
|
93
|
+
userRouter.load(userRouteHook);
|
|
10
94
|
|
|
11
95
|
export default userRouter;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArkosRouter } from "arkos";
|
|
2
2
|
import fileUploadRouter from "@/src/modules/file-upload/file-upload.router";
|
|
3
|
-
{{#if authentication.type}}
|
|
3
|
+
{{#if (neq authentication.type "none")}}
|
|
4
4
|
import authRouter from "@/src/modules/auth/auth.router";
|
|
5
5
|
import userRouter from "@/src/modules/user/user.router";
|
|
6
6
|
{{/if}}
|
|
@@ -12,7 +12,7 @@ import authPermissionRouter from "@/src/modules/auth-permission/auth-permission.
|
|
|
12
12
|
const router = ArkosRouter();
|
|
13
13
|
|
|
14
14
|
router.use(fileUploadRouter);
|
|
15
|
-
{{#if authentication.type}}
|
|
15
|
+
{{#if (neq authentication.type "none")}}
|
|
16
16
|
router.use(userRouter);
|
|
17
17
|
router.use(authRouter);
|
|
18
18
|
{{/if}}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Is worth mentioning that this will be addded into `arkos` as an util.
|
|
6
6
|
*
|
|
7
|
-
* @see {@link https://www.arkosjs.com/docs/
|
|
7
|
+
* @see {@link https://www.arkosjs.com/docs/core-concepts/prisma-orm/handling-relations}
|
|
8
8
|
*/
|
|
9
9
|
const apiActions = ["connect", "disconnect", "delete", "update", "create"]{{#if typescript}} as const{{/if}};
|
|
10
10
|
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{{#if typescript}}
|
|
2
|
-
import { ArkosLoadable } from "arkos";
|
|
3
|
-
{{/if}}
|
|
4
|
-
import fileUploadRouteHook from "@/src/modules/file-upload/file-upload.route-hook";
|
|
5
|
-
{{#if authentication.type}}
|
|
6
|
-
import userRouteHook from "@/src/modules/user/user.route-hook";
|
|
7
|
-
import authRouteHook from "@/src/modules/auth/auth.route-hook";
|
|
8
|
-
{{/if}}
|
|
9
|
-
{{#if (eq authentication.type "dynamic")}}
|
|
10
|
-
import authRoleRouteHook from "@/src/modules/auth-role/auth-role.route-hook";
|
|
11
|
-
import authPermissionRouteHook from "@/src/modules/auth-permission/auth-permission.route-hook";
|
|
12
|
-
{{/if}}
|
|
13
|
-
|
|
14
|
-
{{#if typescript}}
|
|
15
|
-
{{else}}
|
|
16
|
-
/** @type import("arkos").ArkosLoadable */
|
|
17
|
-
{{/if}}
|
|
18
|
-
const loadables{{#if typescript}}: ArkosLoadable[]{{/if}} = [
|
|
19
|
-
fileUploadRouteHook,
|
|
20
|
-
{{#if authentication.type}}
|
|
21
|
-
userRouteHook,
|
|
22
|
-
authRouteHook,
|
|
23
|
-
{{/if}}
|
|
24
|
-
{{#if (eq authentication.type "dynamic")}}
|
|
25
|
-
authRoleRouteHook,
|
|
26
|
-
authPermissionRouteHook,
|
|
27
|
-
{{/if}}
|
|
28
|
-
]
|
|
29
|
-
export default loadables;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { ArkosRouteHook } from 'arkos';
|
|
2
|
-
{{#if validation.type}}
|
|
3
|
-
import LoginDto from '@/src/modules/auth/dtos/login.dto';
|
|
4
|
-
import SignupDto from '@/src/modules/auth/dtos/signup.dto';
|
|
5
|
-
import UpdateMeDto from '@/src/modules/auth/dtos/update-me.dto';
|
|
6
|
-
import UpdatePasswordDto from '@/src/modules/auth/dtos/update-password.dto';
|
|
7
|
-
{{/if}}
|
|
8
|
-
|
|
9
|
-
const authRouteHook = ArkosRouteHook("auth");
|
|
10
|
-
|
|
11
|
-
authRouteHook.login({
|
|
12
|
-
{{#if validation.type}}validation: { body: LoginDto },{{/if}}
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
authRouteHook.signup({
|
|
16
|
-
{{#if validation.type}}validation: { body: SignupDto },{{/if}}
|
|
17
|
-
prismaArgs: {
|
|
18
|
-
omit: { password: true },
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
authRouteHook.getMe({
|
|
23
|
-
prismaArgs: {
|
|
24
|
-
omit: { password: true },
|
|
25
|
-
{{#if (eq authentication.type "dynamic")}}
|
|
26
|
-
include: {
|
|
27
|
-
{{#if authentication.multipleRoles}}
|
|
28
|
-
roles: {
|
|
29
|
-
include: {
|
|
30
|
-
role: {
|
|
31
|
-
include: {
|
|
32
|
-
permissions: true,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
{{else}}
|
|
38
|
-
role: {
|
|
39
|
-
include: {
|
|
40
|
-
role: {
|
|
41
|
-
include: {
|
|
42
|
-
permissions: true,
|
|
43
|
-
},
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
{{/if}}
|
|
48
|
-
},
|
|
49
|
-
{{/if}}
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
authRouteHook.updateMe({
|
|
54
|
-
{{#if validation.type}}validation: { body: UpdateMeDto },{{/if}}
|
|
55
|
-
prismaArgs: {
|
|
56
|
-
omit: { password: true },
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
authRouteHook.updatePassword({
|
|
61
|
-
{{#if validation.type}}validation: { body: UpdatePasswordDto },{{/if}}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
authRouteHook.logout({});
|
|
65
|
-
|
|
66
|
-
export default authRouteHook;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ArkosRouteHook } from 'arkos';
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import authPermissionPolicy from '@/src/modules/auth-permission/auth-permission.policy';
|
|
4
|
-
{{/if}}
|
|
5
|
-
{{#if validation.type}}
|
|
6
|
-
import CreateAuthPermissionDto from '@/src/modules/auth-permission/dtos/create-auth-permission.dto';
|
|
7
|
-
import UpdateAuthPermissionDto from '@/src/modules/auth-permission/dtos/update-auth-permission.dto';
|
|
8
|
-
import QueryAuthPermissionDto from '@/src/modules/auth-permission/dtos/query-auth-permission.dto';
|
|
9
|
-
{{/if}}
|
|
10
|
-
const authPermissionRouteHook = ArkosRouteHook("auth-permission");
|
|
11
|
-
|
|
12
|
-
authPermissionRouteHook.createOne({
|
|
13
|
-
{{#if validation.type}}validation: { body: CreateAuthPermissionDto },{{/if}}
|
|
14
|
-
{{#if authentication}}authentication: authPermissionPolicy.Create,{{/if}}
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
authPermissionRouteHook.findOne({
|
|
18
|
-
{{#if authentication}}authentication: authPermissionPolicy.View,{{/if}}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
authPermissionRouteHook.findMany({
|
|
22
|
-
{{#if validation.type}}validation: { query: QueryAuthPermissionDto },{{/if}}
|
|
23
|
-
{{#if authentication}}authentication: authPermissionPolicy.View,{{/if}}
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
authPermissionRouteHook.updateOne({
|
|
27
|
-
{{#if validation.type}}validation: { body: UpdateAuthPermissionDto },{{/if}}
|
|
28
|
-
{{#if authentication}}authentication: authPermissionPolicy.Update,{{/if}}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
authPermissionRouteHook.deleteOne({
|
|
32
|
-
{{#if authentication}}authentication: authPermissionPolicy.Delete,{{/if}}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export default authPermissionRouteHook;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { ArkosRouteHook } from 'arkos';
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import authRolePolicy from '@/src/modules/auth-role/auth-role.policy';
|
|
4
|
-
{{/if}}
|
|
5
|
-
{{#if validation.type}}
|
|
6
|
-
import CreateAuthRoleDto from '@/src/modules/auth-role/dtos/create-auth-role.dto';
|
|
7
|
-
import UpdateAuthRoleDto from '@/src/modules/auth-role/dtos/update-auth-role.dto';
|
|
8
|
-
import QueryAuthRoleDto from '@/src/modules/auth-role/dtos/query-auth-role.dto';
|
|
9
|
-
{{/if}}
|
|
10
|
-
const authRoleRouteHook = ArkosRouteHook("auth-role");
|
|
11
|
-
|
|
12
|
-
authRoleRouteHook.createOne({
|
|
13
|
-
{{#if validation.type}}validation: { body: CreateAuthRoleDto },{{/if}}
|
|
14
|
-
{{#if authentication}}authentication: authRolePolicy.Create,{{/if}}
|
|
15
|
-
});
|
|
16
|
-
|
|
17
|
-
authRoleRouteHook.findOne({
|
|
18
|
-
{{#if authentication}}authentication: authRolePolicy.View,{{/if}}
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
authRoleRouteHook.findMany({
|
|
22
|
-
{{#if validation.type}}validation: { query: QueryAuthRoleDto },{{/if}}
|
|
23
|
-
{{#if authentication}}authentication: authRolePolicy.View,{{/if}}
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
authRoleRouteHook.updateOne({
|
|
27
|
-
{{#if validation.type}}validation: { body: UpdateAuthRoleDto },{{/if}}
|
|
28
|
-
{{#if authentication}}authentication: authRolePolicy.Update,{{/if}}
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
authRoleRouteHook.deleteOne({
|
|
32
|
-
{{#if authentication}}authentication: authRolePolicy.Delete,{{/if}}
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
export default authRoleRouteHook;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { ArkosRouteHook } from 'arkos';
|
|
2
|
-
{{#if authentication}}
|
|
3
|
-
import fileUploadPolicy from '@/src/modules/file-upload/file-upload.policy';
|
|
4
|
-
{{/if}}
|
|
5
|
-
const fileUploadRouteHook = ArkosRouteHook("file-upload");
|
|
6
|
-
|
|
7
|
-
fileUploadRouteHook.findFile({
|
|
8
|
-
{{#if authentication}}authentication: fileUploadPolicy.View,{{/if}}
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
fileUploadRouteHook.uploadFile({
|
|
12
|
-
{{#if authentication}}authentication: fileUploadPolicy.Create,{{/if}}
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
fileUploadRouteHook.updateFile({
|
|
16
|
-
{{#if authentication}}authentication: fileUploadPolicy.Update,{{/if}}
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
fileUploadRouteHook.deleteFile({
|
|
20
|
-
{{#if authentication}}authentication: fileUploadPolicy.Delete,{{/if}}
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
export default fileUploadRouteHook;
|