Select Git revision
-
Janne Mareike Koschinski authoredJanne Mareike Koschinski authored
types.go 1.75 KiB
package main
import (
"encoding/json"
"os"
"time"
)
type Image struct {
Id string `json:"id"`
Title string
Description string
CreatedAt time.Time
OriginalName string
MimeType string `json:"mime_type"`
}
type Result struct {
Id string `json:"id"`
Success bool `json:"success"`
Errors []string `json:"errors"`
}
type Size struct {
Width uint `json:"width"`
Height uint `json:"height"`
Format string `json:"format"`
}
const (
sizeFormatCover = "cover"
sizeFormatContain = "contain"
)
type Quality struct {
CompressionQuality uint `json:"compression_quality"`
SamplingFactors []float64 `json:"sampling_factors"`
}
type SizeDefinition struct {
Size Size `json:"size"`
Suffix string `json:"suffix"`
}
type RedisConfig struct {
Address string
Password string
}
type DatabaseConfig struct {
Format string
Url string
}
type Config struct {
Sizes []SizeDefinition
Quality Quality
SourceFolder string
TargetFolder string
Redis RedisConfig
Database DatabaseConfig
ImageQueue string
ResultChannel string
}
func NewConfigFromEnv() Config {
config := Config{}
json.Unmarshal([]byte(os.Getenv("IK8R_SIZES")), &config.Sizes)
json.Unmarshal([]byte(os.Getenv("IK8R_QUALITY")), &config.Quality)
config.SourceFolder = os.Getenv("IK8R_SOURCE_FOLDER")
config.TargetFolder = os.Getenv("IK8R_TARGET_FOLDER")
config.Redis.Address = os.Getenv("IK8R_REDIS_ADDRESS")
config.Redis.Password = os.Getenv("IK8R_REDIS_PASSWORD")
config.ImageQueue = os.Getenv("IK8R_REDIS_IMAGE_QUEUE")
config.ResultChannel = os.Getenv("IK8R_REDIS_RESULT_CHANNEL")
config.Database.Format = os.Getenv("IK8R_DATABASE_TYPE")
config.Database.Url = os.Getenv("IK8R_DATABASE_URL")
return config
}