
import pjson from "../../package.json";
import { APICallHeaders, DEFAULT_APP_KEY_HEADER, DEFAULT_HEADERS, DEFAULT_SYSTEM_KEY_NAME_HEADER, DEFAULT_SYSTEM_KEY_VALUE_HEADER, DEFAULT_SYSTEM_USER_TOKEN_HEADER } from "./api-call-headers";
import { VTXBaseAPI } from "./vtx-base-api";





export class VTXWebServerAPI extends VTXBaseAPI{



    constructor(systemKeyName:string, systemKeyValue:string, backendUrl?:string){
        super(VTXWebServerAPI.getDefaultHeaders(systemKeyName, systemKeyValue), backendUrl);        

        if (VTXBaseAPI.isBrowser()){
            throw new Error('VTXWebServerAPI should NOT be used in Browser');
        }
    }
    public setUserToken(userToken:string|null){
        if (userToken){
            this.headers = {
                [DEFAULT_SYSTEM_USER_TOKEN_HEADER]: userToken,
                ...this.headers
            } 
        }else{
            delete this.headers[DEFAULT_SYSTEM_USER_TOKEN_HEADER];
        }
    }

    public static getDefaultHeaders(systemKeyName:string, systemKeyValue:string):APICallHeaders{
        
        return {            
            [DEFAULT_SYSTEM_KEY_NAME_HEADER]: systemKeyName,
            [DEFAULT_SYSTEM_KEY_VALUE_HEADER]: systemKeyValue,
            ...DEFAULT_HEADERS
        }    
        
    }

}