2017-05-03 07:30:18 +02:00
|
|
|
// Package with the mostly static content (models) of this microservice
|
2017-03-25 16:09:17 +01:00
|
|
|
package models
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io/ioutil"
|
|
|
|
|
2017-04-04 19:28:46 +02:00
|
|
|
"github.com/BurntSushi/toml"
|
2017-03-30 16:09:44 +02:00
|
|
|
|
|
|
|
"github.com/genofire/hs_master-kss-monolith/lib/database"
|
2017-03-30 17:02:20 +02:00
|
|
|
"github.com/genofire/hs_master-kss-monolith/lib/log"
|
2017-03-25 16:09:17 +01:00
|
|
|
)
|
|
|
|
|
2017-05-15 10:22:24 +02:00
|
|
|
// Config file for this daemon (more information at the config_example.conf in this git repository)
|
2017-03-25 16:09:17 +01:00
|
|
|
type Config struct {
|
2017-05-03 07:30:18 +02:00
|
|
|
// address under which the api and static content of the webserver runs
|
2017-05-15 10:22:24 +02:00
|
|
|
WebserverBind string `toml:"webserver_bind"`
|
2017-04-28 10:27:36 +02:00
|
|
|
|
|
|
|
// path to deliver static content
|
2017-05-15 10:22:24 +02:00
|
|
|
Webroot string `toml:"webroot"`
|
2017-04-28 10:27:36 +02:00
|
|
|
|
2017-05-15 10:22:24 +02:00
|
|
|
Database database.Config `toml:"database"`
|
|
|
|
GoodRelease GoodReleaseConfig `toml:"good_release"`
|
|
|
|
CacheClean CacheWorkerConfig `toml:"cache_clean"`
|
2017-04-28 10:27:36 +02:00
|
|
|
|
2017-05-15 10:22:24 +02:00
|
|
|
// path to the svg image templates to show the availablity and freshness
|
|
|
|
// of a given good with a traffic light food labeling system
|
|
|
|
GoodAvailabilityTemplate string `toml:"good_availablity_template"`
|
|
|
|
GoodFreshnessTemplate string `toml:"good_freshness_template"`
|
2017-04-28 10:27:36 +02:00
|
|
|
|
2017-05-03 07:30:18 +02:00
|
|
|
// URLs to other microservices that this services uses
|
2017-04-07 13:13:37 +02:00
|
|
|
MicroserviceDependencies struct {
|
|
|
|
Product string `toml:"product"`
|
|
|
|
Permission string `toml:"permission"`
|
|
|
|
} `toml:"microservice_dependencies"`
|
2017-03-25 16:09:17 +01:00
|
|
|
}
|
|
|
|
|
2017-05-03 07:30:18 +02:00
|
|
|
// Configuration of the Worker to clean the cache from values of other microservice
|
2017-04-07 11:56:28 +02:00
|
|
|
type CacheWorkerConfig struct {
|
2017-05-03 07:30:18 +02:00
|
|
|
// Run Worker every Duration
|
2017-04-07 11:56:28 +02:00
|
|
|
Every Duration
|
2017-05-03 07:30:18 +02:00
|
|
|
// Remove cache, which is not used since Duration
|
2017-04-07 11:56:28 +02:00
|
|
|
After Duration
|
|
|
|
}
|
|
|
|
|
2017-05-03 07:30:18 +02:00
|
|
|
// Configuration of the Worker to release locked goods after a time period
|
2017-04-07 11:56:28 +02:00
|
|
|
type GoodReleaseConfig struct {
|
2017-05-03 07:30:18 +02:00
|
|
|
// Run worker every Duration
|
2017-04-07 11:56:28 +02:00
|
|
|
Every Duration `toml:"every"`
|
2017-05-15 10:22:24 +02:00
|
|
|
// Unlock those which are not used since Duration
|
2017-04-28 10:27:36 +02:00
|
|
|
After Duration `toml:"after"`
|
2017-04-07 11:56:28 +02:00
|
|
|
}
|
|
|
|
|
2017-05-15 10:22:24 +02:00
|
|
|
// Function that reads a config model from a given path of a .yml file
|
2017-03-25 16:09:17 +01:00
|
|
|
func ReadConfigFile(path string) *Config {
|
|
|
|
config := &Config{}
|
|
|
|
file, err := ioutil.ReadFile(path)
|
|
|
|
if err != nil {
|
2017-03-30 16:09:44 +02:00
|
|
|
log.Log.Panic(err)
|
2017-03-25 16:09:17 +01:00
|
|
|
}
|
|
|
|
if err := toml.Unmarshal(file, config); err != nil {
|
2017-03-30 16:09:44 +02:00
|
|
|
log.Log.Panic(err)
|
2017-03-25 16:09:17 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return config
|
|
|
|
}
|