Explorar el Código

Merge branch 'bugfix/new-login-bugfix' into develop

BedirhanOZCAN hace 1 mes
padre
commit
45c32920f9
Se han modificado 5 ficheros con 71 adiciones y 47 borrados
  1. 12 2
      .eslintrc.json
  2. 3 1
      .gitignore
  3. 16 6
      src/actions/auth/login/index.ts
  4. 20 4
      src/actions/auth/login/types.ts
  5. 20 34
      yarn.lock

+ 12 - 2
.eslintrc.json

@@ -27,10 +27,20 @@
             "error",
             "error",
             "always"
             "always"
         ],
         ],
-        "indent": [
+        "indent": "off",
+        "@typescript-eslint/indent": [
             "error",
             "error",
-            4
+            4,
+            {
+                "ignoredNodes": [
+                    "PropertyDefinition",
+                    "Decorator"
+                ],
+                "SwitchCase": 1
+            }
         ],
         ],
+        "@typescript-eslint/no-non-null-assertion": "off",
+        "@typescript-eslint/no-unused-vars": "off",
         "semi": "error",
         "semi": "error",
         "quotes": [
         "quotes": [
             "error",
             "error",

+ 3 - 1
.gitignore

@@ -1,3 +1,5 @@
 node_modules
 node_modules
 .env
 .env
-docker-compose.yml
+docker-compose.yml
+
+.eslintrc.json

+ 16 - 6
src/actions/auth/login/index.ts

@@ -1,4 +1,10 @@
 import jwt from "jsonwebtoken";
 import jwt from "jsonwebtoken";
+import {
+    plainToInstance
+} from "class-transformer";
+import {
+    validate
+} from "class-validator";
 import {
 import {
     User
     User
 } from "../../../models/User";
 } from "../../../models/User";
@@ -8,18 +14,22 @@ import {
 } from "./types";
 } from "./types";
 
 
 export const login = async (input: LoginInput): Promise<LoginResult> => {
 export const login = async (input: LoginInput): Promise<LoginResult> => {
-    const {
-        password,
-        mail
-    } = input;
+    const dto = plainToInstance(LoginInput, input);
+    const errors = await validate(dto);
 
 
-    if (!mail || !password) {
+    if (errors.length > 0) {
+        const message = Object.values(errors[0].constraints!)[0];
         return {
         return {
-            message: "Email and password are required",
             code: 400,
             code: 400,
+            message,
         };
         };
     }
     }
 
 
+    const {
+        password,
+        mail
+    } = input;
+
     const user = await User.findOne({
     const user = await User.findOne({
         mail
         mail
     });
     });

+ 20 - 4
src/actions/auth/login/types.ts

@@ -1,7 +1,23 @@
-export interface LoginInput {
-    mail: string;
-    password: string;
+import {
+    IsNotEmpty,
+    IsString,
+    IsEmail
+} from "class-validator";
+
+export class LoginInput {
+    @IsEmail({}, { message: "Invalid email format" })
+    @IsNotEmpty(
+        { message: "Email is required" }
+    )
+    mail!: string;
+
+    @IsString()
+    @IsNotEmpty(
+        { message: "Password is required" }
+    )
+    password!: string;
 }
 }
+
 export interface LoginResult {
 export interface LoginResult {
     message: string;
     message: string;
     code: number;
     code: number;
@@ -11,8 +27,8 @@ export interface LoginResult {
         accessToken?: string;
         accessToken?: string;
         mail?: string;
         mail?: string;
         user?: {
         user?: {
-            phoneNumber: string;
             companyName: string;
             companyName: string;
+            phoneNumber: string;
             firstName: string;
             firstName: string;
             lastName: string;
             lastName: string;
             fullName: string;
             fullName: string;

+ 20 - 34
yarn.lock

@@ -114,7 +114,7 @@
   resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
   resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
   integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
   integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
 
 
-"@types/bcrypt@^6.0.0":
+"@types/bcrypt@6.0.0":
   version "6.0.0"
   version "6.0.0"
   resolved "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-6.0.0.tgz#0d20587924663607fb59ae373d3d6fbc7b339a92"
   resolved "https://registry.yarnpkg.com/@types/bcrypt/-/bcrypt-6.0.0.tgz#0d20587924663607fb59ae373d3d6fbc7b339a92"
   integrity sha512-/oJGukuH3D2+D+3H4JWLaAsJ/ji86dhRidzZ/Od7H/i8g+aCmvkeCc6Ni/f9uxGLSQVCRZkX2/lqEFG2BvWtlQ==
   integrity sha512-/oJGukuH3D2+D+3H4JWLaAsJ/ji86dhRidzZ/Od7H/i8g+aCmvkeCc6Ni/f9uxGLSQVCRZkX2/lqEFG2BvWtlQ==
@@ -136,7 +136,7 @@
   dependencies:
   dependencies:
     "@types/node" "*"
     "@types/node" "*"
 
 
-"@types/cors@^2.8.19":
+"@types/cors@2.8.19":
   version "2.8.19"
   version "2.8.19"
   resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342"
   resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.19.tgz#d93ea2673fd8c9f697367f5eeefc2bbfa94f0342"
   integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==
   integrity sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==
@@ -153,15 +153,15 @@
     "@types/range-parser" "*"
     "@types/range-parser" "*"
     "@types/send" "*"
     "@types/send" "*"
 
 
-"@types/express@^4.17.21":
-  version "4.17.25"
-  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.25.tgz#070c8c73a6fee6936d65c195dbbfb7da5026649b"
-  integrity sha512-dVd04UKsfpINUnK0yBoYHDF3xu7xVH4BuDotC/xGuycx4CgbP48X/KF/586bcObxT0HENHXEU8Nqtu6NR+eKhw==
+"@types/express@4.17.21":
+  version "4.17.21"
+  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
+  integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
   dependencies:
   dependencies:
     "@types/body-parser" "*"
     "@types/body-parser" "*"
     "@types/express-serve-static-core" "^4.17.33"
     "@types/express-serve-static-core" "^4.17.33"
     "@types/qs" "*"
     "@types/qs" "*"
-    "@types/serve-static" "^1"
+    "@types/serve-static" "*"
 
 
 "@types/http-errors@*":
 "@types/http-errors@*":
   version "2.0.5"
   version "2.0.5"
@@ -173,7 +173,7 @@
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
   resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
   integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
   integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
 
 
-"@types/jsonwebtoken@^9.0.10":
+"@types/jsonwebtoken@9.0.10":
   version "9.0.10"
   version "9.0.10"
   resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz#a7932a47177dcd4283b6146f3bd5c26d82647f09"
   resolved "https://registry.yarnpkg.com/@types/jsonwebtoken/-/jsonwebtoken-9.0.10.tgz#a7932a47177dcd4283b6146f3bd5c26d82647f09"
   integrity sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==
   integrity sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==
@@ -181,11 +181,6 @@
     "@types/ms" "*"
     "@types/ms" "*"
     "@types/node" "*"
     "@types/node" "*"
 
 
-"@types/mime@^1":
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690"
-  integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==
-
 "@types/ms@*":
 "@types/ms@*":
   version "2.1.0"
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
   resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
@@ -215,22 +210,13 @@
   dependencies:
   dependencies:
     "@types/node" "*"
     "@types/node" "*"
 
 
-"@types/send@<1":
-  version "0.17.6"
-  resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.6.tgz#aeb5385be62ff58a52cd5459daa509ae91651d25"
-  integrity sha512-Uqt8rPBE8SY0RK8JB1EzVOIZ32uqy8HwdxCnoCOsYrvnswqmFZ/k+9Ikidlk/ImhsdvBsloHbAlewb2IEBV/Og==
-  dependencies:
-    "@types/mime" "^1"
-    "@types/node" "*"
-
-"@types/serve-static@^1":
-  version "1.15.10"
-  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.10.tgz#768169145a778f8f5dfcb6360aead414a3994fee"
-  integrity sha512-tRs1dB+g8Itk72rlSI2ZrW6vZg0YrLI81iQSTkMmOqnqCaNr/8Ek4VwWcN5vZgCYWbg/JJSGBlUaYGAOP73qBw==
+"@types/serve-static@*":
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-2.2.0.tgz#d4a447503ead0d1671132d1ab6bd58b805d8de6a"
+  integrity sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==
   dependencies:
   dependencies:
     "@types/http-errors" "*"
     "@types/http-errors" "*"
     "@types/node" "*"
     "@types/node" "*"
-    "@types/send" "<1"
 
 
 "@types/validator@^13.15.3":
 "@types/validator@^13.15.3":
   version "13.15.10"
   version "13.15.10"
@@ -505,12 +491,12 @@ chokidar@^3.5.2:
   optionalDependencies:
   optionalDependencies:
     fsevents "~2.3.2"
     fsevents "~2.3.2"
 
 
-class-transformer@^0.5.1:
+class-transformer@0.5.1:
   version "0.5.1"
   version "0.5.1"
   resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336"
   resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336"
   integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==
   integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==
 
 
-class-validator@^0.15.1:
+class-validator@0.15.1:
   version "0.15.1"
   version "0.15.1"
   resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.15.1.tgz#002600c101bcebb16e7240870cb50535340c9600"
   resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.15.1.tgz#002600c101bcebb16e7240870cb50535340c9600"
   integrity sha512-LqoS80HBBSCVhz/3KloUly0ovokxpdOLR++Al3J3+dHXWt9sTKlKd4eYtoxhxyUjoe5+UcIM+5k9MIxyBWnRTw==
   integrity sha512-LqoS80HBBSCVhz/3KloUly0ovokxpdOLR++Al3J3+dHXWt9sTKlKd4eYtoxhxyUjoe5+UcIM+5k9MIxyBWnRTw==
@@ -1572,7 +1558,7 @@ redis-parser@^3.0.0:
   dependencies:
   dependencies:
     redis-errors "^1.0.0"
     redis-errors "^1.0.0"
 
 
-reflect-metadata@^0.2.2:
+reflect-metadata@0.2.2:
   version "0.2.2"
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b"
   resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b"
   integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==
   integrity sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==
@@ -1805,7 +1791,7 @@ tr46@^5.1.0:
   dependencies:
   dependencies:
     punycode "^2.3.1"
     punycode "^2.3.1"
 
 
-ts-node@^10.9.2:
+ts-node@10.9.2:
   version "10.9.2"
   version "10.9.2"
   resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
   resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
   integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
   integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
@@ -1857,10 +1843,10 @@ type-is@^2.0.1:
     media-typer "^1.1.0"
     media-typer "^1.1.0"
     mime-types "^3.0.0"
     mime-types "^3.0.0"
 
 
-typescript@^5.5.4:
-  version "5.9.3"
-  resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
-  integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
+typescript@5.5.4:
+  version "5.5.4"
+  resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba"
+  integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==
 
 
 undefsafe@^2.0.5:
 undefsafe@^2.0.5:
   version "2.0.5"
   version "2.0.5"