Kaynağa Gözat

Refactor: Update authentication and product retrieval logic with improved error handling and response structure

BedirhanOZCAN 1 ay önce
ebeveyn
işleme
7f435b4fad

+ 1 - 0
src/actions/auth/finishMailVerify/index.ts

@@ -43,6 +43,7 @@ const finishMailVerify = async (input: FinishMailVerifyInput, context: { userID:
         await User.findByIdAndUpdate(userID, {
         await User.findByIdAndUpdate(userID, {
             isMailVerified: true
             isMailVerified: true
         });
         });
+        
         await redis.del(`mail-verify-${userID}`);
         await redis.del(`mail-verify-${userID}`);
 
 
         return {
         return {

+ 12 - 12
src/actions/auth/login/index.ts

@@ -32,20 +32,20 @@ const login = async (input: LoginInput): Promise<LoginResult> => {
         };
         };
     }
     }
 
 
-    if (!user.isApproved) {
-        if (!user.isPhoneVerified) {
-            return {
-                message: "please-verify-your-phone-first",
-                code: 403,
-                payload: {
-                    userID: user._id.toString()
-                }
-            };
-        }
-
+    if (!user.isPhoneVerified) {
         return {
         return {
-            message: "account-under-review",
+            message: "please-verify-your-phone-first",
             code: 403,
             code: 403,
+            payload: {
+                userID: user._id.toString()
+            }
+        };
+    }
+
+    if (!user.isApproved) {
+        return {
+            message: "account-under-review", // TODO buraya da mesaj olarak onay sürecindesiniz gibisinde mesaj verilecek fronttan kullanmak için
+            code: 200, // TODO BUNUN YERİNE HTTPSTATUS CODE ŞEKLİNDE BAKILACAK
         };
         };
     }
     }
 
 

+ 3 - 2
src/actions/auth/register/index.ts

@@ -55,7 +55,7 @@ const register = async (input: RegisterInput): Promise<RegisterResult> => {
 
 
         const slug = generateSlug(companyName);
         const slug = generateSlug(companyName);
         const existingSlug = await User.findOne({
         const existingSlug = await User.findOne({
-            slug 
+            slug
         });
         });
 
 
         if (existingSlug) {
         if (existingSlug) {
@@ -75,8 +75,9 @@ const register = async (input: RegisterInput): Promise<RegisterResult> => {
             slug,
             slug,
             mail
             mail
         });
         });
+
         await smsSend({
         await smsSend({
-            userID: newUser._id.toString() 
+            userID: newUser._id.toString()
         });
         });
 
 
         return {
         return {

+ 14 - 7
src/actions/menu/getProducts/index.ts

@@ -12,7 +12,7 @@ const getProducts = async (query: GetProductsInput, context: { userID: string })
         const {
         const {
             userID
             userID
         } = context;
         } = context;
-        
+
         const {
         const {
             categoryID
             categoryID
         } = query;
         } = query;
@@ -23,7 +23,7 @@ const getProducts = async (query: GetProductsInput, context: { userID: string })
 
 
         if (categoryID) {
         if (categoryID) {
             matchStage.categoryID = {
             matchStage.categoryID = {
-                $in: [new mongoose.Types.ObjectId(categoryID)] 
+                $in: [new mongoose.Types.ObjectId(categoryID)]
             };
             };
         }
         }
 
 
@@ -36,7 +36,7 @@ const getProducts = async (query: GetProductsInput, context: { userID: string })
                     from: "categories",
                     from: "categories",
                     localField: "categoryID",
                     localField: "categoryID",
                     foreignField: "_id",
                     foreignField: "_id",
-                    as: "categoryID"
+                    as: "categoryIDs"
                 }
                 }
             },
             },
             {
             {
@@ -46,12 +46,19 @@ const getProducts = async (query: GetProductsInput, context: { userID: string })
             }
             }
         ]);
         ]);
 
 
+        const payload = products.map((product) => {
+            return {
+                ...product,
+                categoryIDs: product.categoryID.map((cat: any) => {
+                    return cat._id.toString();
+                })
+            };
+        });
+
         return {
         return {
             message: "products-retrieved-successfully",
             message: "products-retrieved-successfully",
-            code: 200,
-            payload: {
-                products
-            }
+            payload: payload,
+            code: 200
         };
         };
     } catch (error) {
     } catch (error) {
         console.error("GetProducts action error:", error);
         console.error("GetProducts action error:", error);

+ 1 - 1
src/routes/authRoutes.ts

@@ -38,7 +38,7 @@ router.post("/register", validateBody(RegisterInput), register);
 router.post("/login", validateBody(LoginInput), login);
 router.post("/login", validateBody(LoginInput), login);
 router.post("/logout", authMiddleware, logout);
 router.post("/logout", authMiddleware, logout);
 
 
-router.post("/smsSend", validateBody(SmsSendInput), smsSend);
+// router.post("/smsSend", validateBody(SmsSendInput), smsSend);
 router.post("/smsOTP", validateBody(SmsOTPInput), smsOTP);
 router.post("/smsOTP", validateBody(SmsOTPInput), smsOTP);
 
 
 router.get("/validateToken", authMiddleware, (req: AuthRequest, res) => {
 router.get("/validateToken", authMiddleware, (req: AuthRequest, res) => {