Преглед на файлове

Merge branch 'bugfix/isApproved-for-login-bugfix' into develop

BedirhanOZCAN преди 1 месец
родител
ревизия
a404b5030c

+ 5 - 2
src/actions/auth/finishMailVerify/index.ts

@@ -7,13 +7,16 @@ import {
     FinishMailVerifyInput
 } from "./types";
 
-const finishMailVerify = async (input: FinishMailVerifyInput): Promise<FinishMailVerifyResult> => {
+const finishMailVerify = async (input: FinishMailVerifyInput, context: { userID: string }): Promise<FinishMailVerifyResult> => {
     try {
         const {
-            userID,
             code
         } = input;
 
+        const {
+            userID
+        } = context;
+
         const user = await User.findById(userID);
         if (!user) {
             return {

+ 0 - 4
src/actions/auth/finishMailVerify/types.ts

@@ -4,10 +4,6 @@ import {
 } from "class-validator";
 
 export class FinishMailVerifyInput {
-    @IsString()
-    @IsNotEmpty({ message: "userID-is-required" })
-    userID?: string;
-
     @IsString()
     @IsNotEmpty({ message: "code-is-required" })
     code?: string;

+ 14 - 9
src/actions/auth/login/index.ts

@@ -3,7 +3,8 @@ import {
     User
 } from "../../../models/User";
 import {
-    LoginResult, LoginInput
+    LoginResult,
+    LoginInput
 } from "./types";
 import redis from "../../../config/redis";
 
@@ -31,16 +32,20 @@ const login = async (input: LoginInput): Promise<LoginResult> => {
         };
     }
 
-    if (!user.isMailVerified) {
+    if (!user.isApproved) {
+        if (!user.isPhoneVerified) {
+            return {
+                message: "please-verify-your-phone-first",
+                code: 403,
+                payload: {
+                    userID: user._id.toString()
+                }
+            };
+        }
+
         return {
-            message: "please-verify-your-email-address.",
+            message: "account-under-review",
             code: 403,
-            payload: {
-                isMailVerified: user.isMailVerified,
-                user: {
-                    mail: user.mail,
-                }
-            },
         };
     }
 

+ 1 - 0
src/actions/auth/login/types.ts

@@ -25,6 +25,7 @@ export interface LoginResult {
         isMailVerified?: boolean;
         refreshToken?: string;
         accessToken?: string;
+        userID?: string;
         user?: {
             phoneNumber?: string;
             companyName?: string;

+ 3 - 1
src/actions/auth/smsSend/types.ts

@@ -12,5 +12,7 @@ export class SmsSendInput {
 export type SmsSendResult = {
     message: string;
     code: number;
-    payload?: any;
+    payload?: {
+        remainingTime: number;
+    };
 };

+ 2 - 2
src/actions/auth/startMailVerify/index.ts

@@ -12,11 +12,11 @@ import {
 } from "../../../utils";
 // import { sendMail } from "../../../utils/mailer"; // mail gönderme fonskiyonu bu şekilde ilerde import edilecek.
 
-const startMailVerify = async (input: StartMailVerifyInput): Promise<StartMailVerifyResult> => {
+const startMailVerify = async (context: { userID: string }): Promise<StartMailVerifyResult> => {
     try {
         const {
             userID
-        } = input;
+        } = context;
 
         const user = await User.findById(userID);
         if (!user) {

+ 1 - 5
src/actions/auth/startMailVerify/types.ts

@@ -2,11 +2,7 @@ import {
     IsNotEmpty, IsString
 } from "class-validator";
 
-export class StartMailVerifyInput {
-    @IsString({ message: "userID must be a string" })
-    @IsNotEmpty({ message: "userID is required" })
-    userID!: string;
-}
+export class StartMailVerifyInput { }
 
 export interface StartMailVerifyResult {
     message: string;

+ 4 - 4
src/controllers/authController.ts

@@ -97,9 +97,9 @@ export const refreshToken = async (req: Request, res: Response): Promise<void> =
         });
 };
 
-export const startMailVerify = async (req: Request, res: Response): Promise<void> => {
+export const startMailVerify = async (req: AuthRequest, res: Response): Promise<void> => {
     try {
-        const result = await _startMailVerify(req.body);
+        const result = await _startMailVerify(req.context!);
 
         res.status(result.code).json({
             message: result.message,
@@ -118,8 +118,8 @@ export const startMailVerify = async (req: Request, res: Response): Promise<void
     }
 };
 
-export const finishMailVerify = async (req: Request, res: Response): Promise<void> => {
-    const result = await _finishMailVerify(req.body);
+export const finishMailVerify = async (req: AuthRequest, res: Response): Promise<void> => {
+    const result = await _finishMailVerify(req.body, req.context!);
 
     res.status(result.code)
         .json({

+ 2 - 2
src/routes/authRoutes.ts

@@ -31,8 +31,8 @@ import {
 
 const router = Router();
 
-router.post("/finishMailVerify", validateBody(FinishMailVerifyInput), finishMailVerify); //TODO: auth middleware eklenecek
-router.post("/startMailVerify", validateBody(StartMailVerifyInput), startMailVerify); //TODO: auth middleware eklenecek
+router.post("/finishMailVerify", authMiddleware, validateBody(FinishMailVerifyInput), finishMailVerify);
+router.post("/startMailVerify", authMiddleware, validateBody(StartMailVerifyInput), startMailVerify);
 router.post("/refreshToken", validateBody(RefreshTokenInput), refreshToken);
 router.post("/register", validateBody(RegisterInput), register);
 router.post("/login", validateBody(LoginInput), login);