import {Cookies} from "react-cookie";

export default interface IFrontendSettings {
    jobInterval: Date;
    apiUri: string;
}

export function FrontendSettingsWith(settings: IFrontendSettings | undefined, jobInterval: Date | undefined, apiUri: string | undefined): IFrontendSettings {
    const cookies = new Cookies();
    let transform : IFrontendSettings;
    if(settings === undefined) {
        transform = {
            apiUri: apiUri === undefined
                ? cookies.get('apiUri') === undefined
                    ? `${window.location.protocol}//${window.location.host}/api`
                    : cookies.get('apiUri')
                : apiUri,
            jobInterval: jobInterval === undefined
                ? cookies.get('jobInterval') === undefined
                    ? new Date(0,0,0,3)
                    : cookies.get('jobInterval')
                : jobInterval
        }
    }else {
        transform = {
            apiUri: apiUri === undefined ? settings.apiUri : apiUri,
            jobInterval: jobInterval === undefined ? settings.jobInterval : jobInterval,
        }
    }
    return transform;
}