package main

import (
	"encoding/json"
	"errors"
	"io/ioutil"
	"log"
)

//EspoCRMAPIConfig CRM configuration for API accessing
type EspoCRMAPIConfig struct {

	//where the EspoCRM is installed
	BaseURL string `json:"BaseURL"`

	//access UserName
	UserName string `json:"UserName"`

	//access Password
	UserPass string `json:"UserPass"`
}

//CRMConfig contains secrets that cannot store in source file
//
var CRMConfig EspoCRMAPIConfig

func readCRMConfig() error {
	log.Printf("read CRM config from %s\r\n", "crm_config.json")
	body, err := ioutil.ReadFile("crm_config.json")
	if err != nil {
		log.Fatal("Cannot read config from crm_config.json")
		return err
	}
	err = json.Unmarshal(body, &CRMConfig)
	if CRMConfig.BaseURL == "" {
		return errors.New("CRM BaseURL not available not available")
	}

	if CRMConfig.UserName == "" {
		return errors.New("CRM UserName not available not available")
	}

	if CRMConfig.UserPass == "" {
		return errors.New("CRM UserPass not available not available")
	}

	return err
}
