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-05-23 20:42:06 -04:00
|
|
|
if (!loginRequest || typeof loginRequest !== "object") {
|
|
|
|
throw new Error("incorrect or missing login request data");
|
|
|
|
}
|
2023-05-19 15:22:48 -03:00
|
|
|
|
2023-05-23 20:42:06 -04: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-05-23 20:42:06 -04:00
|
|
|
throw new Error("incorrect login request");
|
2023-05-19 15:22:48 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
export { toLoginRequest };
|