Spaces:
Running
Running
Hozifa Elgharbawy
commited on
Commit
·
3787f0d
1
Parent(s):
5981b95
update
Browse files- src/common/models/user.model.ts +1 -1
- src/common/validations/user-register.validation.ts +18 -18
- src/modules/console/modules/admins/controllers/admins.controller.ts +3 -3
- src/modules/console/modules/users/controllers/users.controller.ts +0 -1
- src/modules/users/auth/controllers/auth.controller.ts +3 -2
- src/routes.ts +14 -1
src/common/models/user.model.ts
CHANGED
@@ -35,7 +35,7 @@ export interface IUser {
|
|
35 |
|
36 |
const userSchema = new Schema({
|
37 |
name: { type: String, required: true },
|
38 |
-
email: { type: String, required: true
|
39 |
password: { type: String, required: true },
|
40 |
image: { type: Object },
|
41 |
gender: {
|
|
|
35 |
|
36 |
const userSchema = new Schema({
|
37 |
name: { type: String, required: true },
|
38 |
+
email: { type: String, required: true },
|
39 |
password: { type: String, required: true },
|
40 |
image: { type: Object },
|
41 |
gender: {
|
src/common/validations/user-register.validation.ts
CHANGED
@@ -132,15 +132,15 @@ export const userRegisterKeys = {
|
|
132 |
}),
|
133 |
preferred_days: joi
|
134 |
.array()
|
135 |
-
.valid(...Object.values(PreferredDay))
|
136 |
.empty()
|
137 |
.required()
|
138 |
.items(
|
139 |
-
joi.string().
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
|
|
144 |
),
|
145 |
workout_place: joi
|
146 |
.string()
|
@@ -154,28 +154,28 @@ export const userRegisterKeys = {
|
|
154 |
}),
|
155 |
preferred_equipment: joi
|
156 |
.array()
|
157 |
-
.valid(...Object.values(PreferredEquipment))
|
158 |
.empty()
|
159 |
.required()
|
160 |
.items(
|
161 |
-
joi.string().
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
|
|
166 |
),
|
167 |
}),
|
168 |
injuries: joi
|
169 |
.array()
|
170 |
-
.valid(...Object.values(Injury))
|
171 |
.empty()
|
172 |
.required()
|
173 |
.items(
|
174 |
-
joi.string().
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
|
|
179 |
),
|
180 |
dob: joi.date().empty().optional().messages({
|
181 |
"date.base": "please enter a valid date",
|
|
|
132 |
}),
|
133 |
preferred_days: joi
|
134 |
.array()
|
|
|
135 |
.empty()
|
136 |
.required()
|
137 |
.items(
|
138 |
+
joi.string().valid(...Object.values(PreferredDay))
|
139 |
+
.empty().required().messages({
|
140 |
+
"string.base": "please enter a valid preferred_days",
|
141 |
+
"any.required": "preferred_days must be entered",
|
142 |
+
"string.empty": "preferred_days cannot be empty",
|
143 |
+
})
|
144 |
),
|
145 |
workout_place: joi
|
146 |
.string()
|
|
|
154 |
}),
|
155 |
preferred_equipment: joi
|
156 |
.array()
|
|
|
157 |
.empty()
|
158 |
.required()
|
159 |
.items(
|
160 |
+
joi.string().valid(...Object.values(PreferredEquipment))
|
161 |
+
.empty().required().messages({
|
162 |
+
"string.base": "please enter a valid preferred_equipment",
|
163 |
+
"any.required": "preferred_equipment must be entered",
|
164 |
+
"string.empty": "preferred_equipment cannot be empty",
|
165 |
+
})
|
166 |
),
|
167 |
}),
|
168 |
injuries: joi
|
169 |
.array()
|
|
|
170 |
.empty()
|
171 |
.required()
|
172 |
.items(
|
173 |
+
joi.string().valid(...Object.values(Injury))
|
174 |
+
.empty().required().messages({
|
175 |
+
"string.base": "please enter a valid injuries",
|
176 |
+
"any.required": "injuries must be entered",
|
177 |
+
"string.empty": "injuries cannot be empty",
|
178 |
+
})
|
179 |
),
|
180 |
dob: joi.date().empty().optional().messages({
|
181 |
"date.base": "please enter a valid date",
|
src/modules/console/modules/admins/controllers/admins.controller.ts
CHANGED
@@ -14,7 +14,7 @@ import { serialize } from "@helpers/serialize";
|
|
14 |
import { AdminSerialization } from "src/modules/console/common/serializers/admin.serializtion";
|
15 |
|
16 |
@Prefix("/console/admins")
|
17 |
-
@ControllerMiddleware(AdminGuardMiddleware({ roles: [Role.SUPER_ADMIN] }))
|
18 |
export class AdminsController extends BaseController {
|
19 |
private adminsService = new AdminsService();
|
20 |
|
@@ -23,8 +23,8 @@ export class AdminsController extends BaseController {
|
|
23 |
this.router.get("/:id", paramsValidator("id"), asyncHandler(this.get));
|
24 |
this.router.post(
|
25 |
"/",
|
26 |
-
|
27 |
-
|
28 |
);
|
29 |
this.router.patch(
|
30 |
"/:id",
|
|
|
14 |
import { AdminSerialization } from "src/modules/console/common/serializers/admin.serializtion";
|
15 |
|
16 |
@Prefix("/console/admins")
|
17 |
+
// @ControllerMiddleware(AdminGuardMiddleware({ roles: [Role.SUPER_ADMIN] }))
|
18 |
export class AdminsController extends BaseController {
|
19 |
private adminsService = new AdminsService();
|
20 |
|
|
|
23 |
this.router.get("/:id", paramsValidator("id"), asyncHandler(this.get));
|
24 |
this.router.post(
|
25 |
"/",
|
26 |
+
|
27 |
+
this.create
|
28 |
);
|
29 |
this.router.patch(
|
30 |
"/:id",
|
src/modules/console/modules/users/controllers/users.controller.ts
CHANGED
@@ -17,7 +17,6 @@ export class AdminUsersController extends BaseController {
|
|
17 |
setRoutes() {
|
18 |
this.router.post(
|
19 |
"/create",
|
20 |
-
bodyValidator(userRegisterSchema),
|
21 |
asyncHandler(this.create)
|
22 |
);
|
23 |
}
|
|
|
17 |
setRoutes() {
|
18 |
this.router.post(
|
19 |
"/create",
|
|
|
20 |
asyncHandler(this.create)
|
21 |
);
|
22 |
}
|
src/modules/users/auth/controllers/auth.controller.ts
CHANGED
@@ -29,8 +29,9 @@ export class UsersAuthController extends BaseController {
|
|
29 |
|
30 |
register = async (req: Request, res: Response) => {
|
31 |
const user = await this.authService.register(req.body as IUserRegister);
|
|
|
32 |
const response = new JsonResponse({
|
33 |
-
data: serialize(user,
|
34 |
});
|
35 |
return res.json(response);
|
36 |
};
|
@@ -38,7 +39,7 @@ export class UsersAuthController extends BaseController {
|
|
38 |
login = async (req: Request, res: Response) => {
|
39 |
const { user, token } = await this.authService.login(req.body);
|
40 |
const response = new JsonResponse({
|
41 |
-
data: { user
|
42 |
});
|
43 |
return res.json(response);
|
44 |
};
|
|
|
29 |
|
30 |
register = async (req: Request, res: Response) => {
|
31 |
const user = await this.authService.register(req.body as IUserRegister);
|
32 |
+
|
33 |
const response = new JsonResponse({
|
34 |
+
data: serialize(user.toJSON(),UserSerialization),
|
35 |
});
|
36 |
return res.json(response);
|
37 |
};
|
|
|
39 |
login = async (req: Request, res: Response) => {
|
40 |
const { user, token } = await this.authService.login(req.body);
|
41 |
const response = new JsonResponse({
|
42 |
+
data: { user, token },
|
43 |
});
|
44 |
return res.json(response);
|
45 |
};
|
src/routes.ts
CHANGED
@@ -30,13 +30,26 @@ const setCustomRoutes = (router: Router) => {
|
|
30 |
.status(404)
|
31 |
.json({ success: false, message: "Invalid URL!", code: 404 });
|
32 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
};
|
34 |
|
35 |
/* importing all controllers */
|
36 |
|
37 |
const findControllerFiles = (): string[] => {
|
38 |
const controllersPath = path.relative(process.cwd(), path.join(__dirname, "**/*.controller.{ts,js}")).replace(/\\/g, "/")
|
39 |
-
|
40 |
return glob.sync(controllersPath, {}).map((file) => {
|
41 |
return path.resolve(file);
|
42 |
});
|
|
|
30 |
.status(404)
|
31 |
.json({ success: false, message: "Invalid URL!", code: 404 });
|
32 |
});
|
33 |
+
router.use((err, req, res, next) => {
|
34 |
+
try {
|
35 |
+
err.message = JSON.parse(err.message);
|
36 |
+
} catch (error) { }
|
37 |
+
|
38 |
+
res.status(err.status || 500).json({
|
39 |
+
status: err.status || 500,
|
40 |
+
message: err.message || "Internal Server Error",
|
41 |
+
});
|
42 |
+
|
43 |
+
console.error(err.message, err.stack);
|
44 |
+
});
|
45 |
+
|
46 |
};
|
47 |
|
48 |
/* importing all controllers */
|
49 |
|
50 |
const findControllerFiles = (): string[] => {
|
51 |
const controllersPath = path.relative(process.cwd(), path.join(__dirname, "**/*.controller.{ts,js}")).replace(/\\/g, "/")
|
52 |
+
|
53 |
return glob.sync(controllersPath, {}).map((file) => {
|
54 |
return path.resolve(file);
|
55 |
});
|