import { IClientAuthentication } from "@business-logic/types/Authentication";
import { Authentication } from "@business-logic/types/Enums";

export function buildToken(clientAuth: IClientAuthentication, formData: Map<string, string>): string {
    if(clientAuth.authentication === undefined
        || clientAuth.authentication === Authentication.None
        || clientAuth.authentication === Authentication.Unknown
    ) {
        return '';
    }

    let token = (formData.get('Token') ?? formData.get("Timestamp") ?? '');
    if(clientAuth.authentication === Authentication.RSAToken) {
        return token;
    }

    for(const [id, value] of formData.entries()) {
        token += `|${id.toLowerCase()}=${value}`
    }

    return token;
}

export function getTimestamp(): string {
    const time = new Date(Date.now());
    const formatOptions  :Intl.DateTimeFormatOptions = {
        hour12: false,
        dateStyle: "short",
        timeStyle: "medium"
    }
    const string = time.toLocaleString('en-US', formatOptions);
    let timestamp = string.replaceAll("/","").replaceAll(", ","").replaceAll(":","");
    return timestamp;
}