diff --git a/src/controllers/api/loginController.ts b/src/controllers/api/loginController.ts index 0d7e63a9..e48e6df0 100644 --- a/src/controllers/api/loginController.ts +++ b/src/controllers/api/loginController.ts @@ -1,15 +1,18 @@ +/* eslint-disable @typescript-eslint/no-unused-vars */ +import { RequestHandler } from "express"; + import config from "@/config.json"; -import { removeKeysFromObject } from "@/src/helpers/general"; + import { toLoginRequest } from "@/src/helpers/loginHelpers"; import { Account } from "@/src/models/loginModel"; import { createAccount, isCorrectPassword } from "@/src/services/loginService"; import { ILoginResponse } from "@/src/types/loginTypes"; -import { DTLS, HUB, IRC, NRS, Nonce, groups, platformCDNs } from "@/static/fixed_responses/login_static"; -import { RequestHandler } from "express"; +import { DTLS, groups, HUB, IRC, Nonce, NRS, platformCDNs } from "@/static/fixed_responses/login_static"; // eslint-disable-next-line @typescript-eslint/no-misused-promises const loginController: RequestHandler = async (request, response) => { - const body: unknown = JSON.parse(String(request.body)); + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument + const body = JSON.parse(request.body); // parse octet stream of json data to json object const loginRequest = toLoginRequest(body); const account = await Account.findOne({ email: loginRequest.email }); //{ _id: 0, __v: 0 } @@ -27,8 +30,9 @@ const loginController: RequestHandler = async (request, response) => { ConsentNeeded: false, TrackedSettings: [] }); - - const databaseAccount = removeKeysFromObject(newAccount, ["email", "password"]); + console.log("creating new account"); + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { email, password, ...databaseAccount } = newAccount; const newLoginResponse: ILoginResponse = { ...databaseAccount, Groups: groups, @@ -57,7 +61,7 @@ const loginController: RequestHandler = async (request, response) => { return; } - const databaseAccount = removeKeysFromObject(account.toJSON(), ["email", "password"]); + const { email, password, ...databaseAccount } = account.toJSON(); const newLoginResponse: ILoginResponse = { ...databaseAccount, Groups: groups, diff --git a/src/helpers/general.ts b/src/helpers/general.ts index e37be5cb..8aa19a1a 100644 --- a/src/helpers/general.ts +++ b/src/helpers/general.ts @@ -55,21 +55,4 @@ const parseBoolean = (booleanCandidate: unknown): boolean => { return booleanCandidate; }; -function removeKeysFromObject(object: T, keys: Array): Partial { - const newObject: Partial = object; - for (const key of keys) { - delete newObject[key]; - } - return newObject; -} - -export { - isString, - isNumber, - parseString, - parseNumber, - parseDateNumber, - parseBoolean, - parseEmail, - removeKeysFromObject -}; +export { isString, isNumber, parseString, parseNumber, parseDateNumber, parseBoolean, parseEmail }; diff --git a/src/helpers/inventoryHelpers.ts b/src/helpers/inventoryHelpers.ts index 173aaf19..7879c007 100644 --- a/src/helpers/inventoryHelpers.ts +++ b/src/helpers/inventoryHelpers.ts @@ -1,8 +1,9 @@ -import { removeKeysFromObject } from "@/src/helpers/general"; -import { IInventoryDatabase } from "@/src/types/inventoryTypes"; +import { IInventoryDatabase, IInventoryResponse } from "@/src/types/inventoryTypes"; -const toInventoryResponse = (inventoryDatabase: IInventoryDatabase) => { - return removeKeysFromObject(inventoryDatabase, ["accountOwnerId"]); +const toInventoryResponse = (inventoryDatabase: IInventoryDatabase): IInventoryResponse => { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { accountOwnerId, ...inventoreResponse } = inventoryDatabase; + return inventoreResponse; }; export { toInventoryResponse }; diff --git a/src/types/loginTypes.ts b/src/types/loginTypes.ts index 42e6c21a..1d53de43 100644 --- a/src/types/loginTypes.ts +++ b/src/types/loginTypes.ts @@ -1,4 +1,4 @@ -export interface ILoginResponse extends Omit, "email" | "password"> { +export interface ILoginResponse extends Omit { Groups: IGroup[]; Nonce: number; BuildLabel: string;