SpaceNinjaServer/src/helpers/loginHelpers.ts

36 lines
1.1 KiB
TypeScript
Raw Normal View History

2023-05-19 15:22:48 -03:00
import { ILoginRequest } from "../types/loginTypes";
import { parseEmail, parseNumber, parseString } from "./general";
const toLoginRequest = (loginRequest: unknown): ILoginRequest => {
2023-06-01 19:10:48 +02:00
if (!loginRequest || typeof loginRequest !== "object") {
throw new Error("incorrect or missing login request data");
}
2023-05-19 15:22:48 -03:00
2023-06-01 19:10:48 +02:00
// TODO: function that checks whether every field of interface is in object
if (
"email" in loginRequest &&
"password" in loginRequest &&
"time" in loginRequest &&
"s" in loginRequest &&
"lang" in loginRequest &&
"date" in loginRequest &&
"ClientType" in loginRequest &&
"PS" in loginRequest
) {
return {
email: parseEmail(loginRequest.email),
password: parseString(loginRequest.password),
time: parseNumber(loginRequest.time),
s: parseString(loginRequest.s),
lang: parseString(loginRequest.lang),
date: parseNumber(loginRequest.date),
ClientType: parseString(loginRequest.ClientType),
PS: parseString(loginRequest.PS)
};
}
2023-05-19 15:22:48 -03:00
2023-06-01 19:10:48 +02:00
throw new Error("incorrect login request");
2023-05-19 15:22:48 -03:00
};
export { toLoginRequest };