Skip to content

Commit 364a1d3

Browse files
committed
refactor: add base service
1 parent 3cb6526 commit 364a1d3

File tree

14 files changed

+490
-829
lines changed

14 files changed

+490
-829
lines changed

src/app/controller/account/role.controller.ts

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,48 +2,56 @@ import { type Request, type Response } from 'express'
22
import { arrayFormatter } from 'expresso-core'
33
import authorization from '~/app/middleware/authorization'
44
import { permissionAccess } from '~/app/middleware/permission'
5+
import roleSchema from '~/app/schema/role.schema'
56
import RoleService from '~/app/service/role.service'
67
import { env } from '~/config/env'
78
import ConstRole from '~/core/constants/ConstRole'
89
import { type IReqOptions } from '~/core/interface/ReqOptions'
910
import HttpResponse from '~/core/modules/response/HttpResponse'
1011
import { asyncHandler } from '~/core/utils/asyncHandler'
11-
import route from '~/routes/v1'
12+
import Role from '~/database/entities/Role'
13+
import v1Route from '~/routes/v1'
14+
15+
const route = v1Route
16+
const routePath = `/role`
17+
const newRoleService = new RoleService({
18+
entity: 'role',
19+
repository: Role,
20+
})
1221

1322
route.get(
14-
'/role',
23+
`${routePath}`,
1524
authorization,
1625
asyncHandler(async function findAll(req: Request, res: Response) {
1726
const { lang } = req.getQuery()
1827
const defaultLang = lang ?? env.APP_LANG
1928
const options: IReqOptions = { lang: defaultLang }
2029

21-
const data = await RoleService.findAll(req)
30+
const data = await newRoleService.findAll(req)
2231

2332
const httpResponse = HttpResponse.get(data, options)
2433
res.status(200).json(httpResponse)
2534
})
2635
)
2736

2837
route.get(
29-
'/role/:id',
38+
`${routePath}/:id`,
3039
authorization,
3140
asyncHandler(async function findOne(req: Request, res: Response) {
3241
const { lang } = req.getQuery()
3342
const defaultLang = lang ?? env.APP_LANG
3443
const options: IReqOptions = { lang: defaultLang }
3544

3645
const { id } = req.getParams()
37-
38-
const data = await RoleService.findById(id, options)
46+
const data = await newRoleService.findById(id, options)
3947

4048
const httpResponse = HttpResponse.get({ data }, options)
4149
res.status(200).json(httpResponse)
4250
})
4351
)
4452

4553
route.post(
46-
'/role',
54+
`${routePath}`,
4755
authorization,
4856
permissionAccess(ConstRole.ROLE_ADMIN),
4957
asyncHandler(async function create(req: Request, res: Response) {
@@ -52,16 +60,15 @@ route.post(
5260
const options: IReqOptions = { lang: defaultLang }
5361

5462
const formData = req.getBody()
55-
56-
const data = await RoleService.create(formData)
63+
const data = await newRoleService.create(formData)
5764

5865
const httpResponse = HttpResponse.created({ data }, options)
5966
res.status(201).json(httpResponse)
6067
})
6168
)
6269

6370
route.put(
64-
'/role/:id',
71+
`${routePath}/:id`,
6572
authorization,
6673
permissionAccess(ConstRole.ROLE_ADMIN),
6774
asyncHandler(async function update(req: Request, res: Response) {
@@ -72,15 +79,16 @@ route.put(
7279
const { id } = req.getParams()
7380
const formData = req.getBody()
7481

75-
const data = await RoleService.update(id, formData, options)
82+
const newFormData = roleSchema.create.parse(formData)
83+
const data = await newRoleService.update(id, newFormData, options)
7684

7785
const httpResponse = HttpResponse.updated({ data }, options)
7886
res.status(200).json(httpResponse)
7987
})
8088
)
8189

8290
route.put(
83-
'/role/restore/:id',
91+
`${routePath}/restore/:id`,
8492
authorization,
8593
permissionAccess(ConstRole.ROLE_ADMIN),
8694
asyncHandler(async function restore(req: Request, res: Response) {
@@ -89,16 +97,15 @@ route.put(
8997
const options: IReqOptions = { lang: defaultLang }
9098

9199
const { id } = req.getParams()
92-
93-
await RoleService.restore(id, options)
100+
await newRoleService.restore(id, options)
94101

95102
const httpResponse = HttpResponse.updated({}, options)
96103
res.status(200).json(httpResponse)
97104
})
98105
)
99106

100107
route.delete(
101-
'/role/soft-delete/:id',
108+
`${routePath}/soft-delete/:id`,
102109
authorization,
103110
permissionAccess(ConstRole.ROLE_ADMIN),
104111
asyncHandler(async function softDelete(req: Request, res: Response) {
@@ -107,16 +114,15 @@ route.delete(
107114
const options: IReqOptions = { lang: defaultLang }
108115

109116
const { id } = req.getParams()
110-
111-
await RoleService.softDelete(id, options)
117+
await newRoleService.softDelete(id, options)
112118

113119
const httpResponse = HttpResponse.deleted({}, options)
114120
res.status(200).json(httpResponse)
115121
})
116122
)
117123

118124
route.delete(
119-
'/role/force-delete/:id',
125+
`${routePath}/force-delete/:id`,
120126
authorization,
121127
permissionAccess(ConstRole.ROLE_ADMIN),
122128
asyncHandler(async function forceDelete(req: Request, res: Response) {
@@ -125,16 +131,15 @@ route.delete(
125131
const options: IReqOptions = { lang: defaultLang }
126132

127133
const { id } = req.getParams()
128-
129-
await RoleService.forceDelete(id, options)
134+
await newRoleService.forceDelete(id, options)
130135

131136
const httpResponse = HttpResponse.deleted({}, options)
132137
res.status(200).json(httpResponse)
133138
})
134139
)
135140

136141
route.post(
137-
'/role/multiple/restore',
142+
`${routePath}/multiple/restore`,
138143
authorization,
139144
permissionAccess(ConstRole.ROLE_ADMIN),
140145
asyncHandler(async function multipleRestore(req: Request, res: Response) {
@@ -144,16 +149,15 @@ route.post(
144149

145150
const formData = req.getBody()
146151
const arrayIds = arrayFormatter(formData.ids)
147-
148-
await RoleService.multipleRestore(arrayIds, options)
152+
await newRoleService.multipleRestore(arrayIds, options)
149153

150154
const httpResponse = HttpResponse.updated({}, options)
151155
res.status(200).json(httpResponse)
152156
})
153157
)
154158

155159
route.post(
156-
'/role/multiple/soft-delete',
160+
`${routePath}/multiple/soft-delete`,
157161
authorization,
158162
permissionAccess(ConstRole.ROLE_ADMIN),
159163
asyncHandler(async function multipleSoftDelete(req: Request, res: Response) {
@@ -163,16 +167,15 @@ route.post(
163167

164168
const formData = req.getBody()
165169
const arrayIds = arrayFormatter(formData.ids)
166-
167-
await RoleService.multipleSoftDelete(arrayIds, options)
170+
await newRoleService.multipleSoftDelete(arrayIds, options)
168171

169172
const httpResponse = HttpResponse.deleted({}, options)
170173
res.status(200).json(httpResponse)
171174
})
172175
)
173176

174177
route.post(
175-
'/role/multiple/force-delete',
178+
`${routePath}/multiple/force-delete`,
176179
authorization,
177180
permissionAccess(ConstRole.ROLE_ADMIN),
178181
asyncHandler(async function multipleForceDelete(req: Request, res: Response) {
@@ -182,8 +185,7 @@ route.post(
182185

183186
const formData = req.getBody()
184187
const arrayIds = arrayFormatter(formData.ids)
185-
186-
await RoleService.multipleForceDelete(arrayIds, options)
188+
await newRoleService.multipleForceDelete(arrayIds, options)
187189

188190
const httpResponse = HttpResponse.deleted({}, options)
189191
res.status(200).json(httpResponse)

src/app/controller/account/session.controller.ts

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,68 +5,73 @@ import { env } from '~/config/env'
55
import { type IReqOptions } from '~/core/interface/ReqOptions'
66
import HttpResponse from '~/core/modules/response/HttpResponse'
77
import { asyncHandler } from '~/core/utils/asyncHandler'
8-
import route from '~/routes/v1'
8+
import Session from '~/database/entities/Session'
9+
import v1Route from '~/routes/v1'
10+
11+
const route = v1Route
12+
const routePath = `/session`
13+
const newSessionService = new SessionService({
14+
entity: 'session',
15+
repository: Session,
16+
})
917

1018
route.get(
11-
'/session',
19+
`${routePath}`,
1220
authorization,
1321
asyncHandler(async function findAll(req: Request, res: Response) {
1422
const { lang } = req.getQuery()
1523
const defaultLang = lang ?? env.APP_LANG
1624
const options: IReqOptions = { lang: defaultLang }
1725

18-
const data = await SessionService.findAll(req)
26+
const data = await newSessionService.findAll(req)
1927

2028
const httpResponse = HttpResponse.get(data, options)
2129
res.status(200).json(httpResponse)
2230
})
2331
)
2432

2533
route.get(
26-
'/session/:id',
34+
`${routePath}/:id`,
2735
authorization,
2836
asyncHandler(async function findOne(req: Request, res: Response) {
2937
const { lang } = req.getQuery()
3038
const defaultLang = lang ?? env.APP_LANG
3139
const options: IReqOptions = { lang: defaultLang }
3240

3341
const { id } = req.getParams()
34-
35-
const data = await SessionService.findById(id, options)
42+
const data = await newSessionService.findById(id, options)
3643

3744
const httpResponse = HttpResponse.get({ data }, options)
3845
res.status(200).json(httpResponse)
3946
})
4047
)
4148

4249
route.post(
43-
'/session',
50+
`${routePath}`,
4451
authorization,
4552
asyncHandler(async function create(req: Request, res: Response) {
4653
const { lang } = req.getQuery()
4754
const defaultLang = lang ?? env.APP_LANG
4855
const options: IReqOptions = { lang: defaultLang }
4956

5057
const formData = req.getBody()
51-
52-
const data = await SessionService.create(formData)
58+
const data = await newSessionService.create(formData)
5359

5460
const httpResponse = HttpResponse.created({ data }, options)
5561
res.status(201).json(httpResponse)
5662
})
5763
)
5864

5965
route.delete(
60-
'/session/:id',
66+
`${routePath}/:id`,
6167
authorization,
6268
asyncHandler(async function forceDelete(req: Request, res: Response) {
6369
const { lang } = req.getQuery()
6470
const defaultLang = lang ?? env.APP_LANG
6571
const options: IReqOptions = { lang: defaultLang }
6672

6773
const { id } = req.getParams()
68-
69-
await SessionService.delete(id, options)
74+
await newSessionService.delete(id, options)
7075

7176
const httpResponse = HttpResponse.deleted({}, options)
7277
res.status(200).json(httpResponse)

0 commit comments

Comments
 (0)