movier/server/pkg/config/config.go

106 lines
2.6 KiB
Go

package config
import (
"fmt"
"strconv"
"github.com/aykhans/movier/server/pkg/utils"
)
type DownloadConfig struct {
URL string
DownloadName string
ExtractName string
}
var DownloadConfigs = []DownloadConfig{
{
URL: "https://datasets.imdbws.com/title.basics.tsv.gz",
DownloadName: "title.basics.tsv.gz",
ExtractName: "title.basics.tsv",
},
{
URL: "https://datasets.imdbws.com/title.principals.tsv.gz",
DownloadName: "title.principals.tsv.gz",
ExtractName: "title.principals.tsv",
},
{
URL: "https://datasets.imdbws.com/title.ratings.tsv.gz",
DownloadName: "title.ratings.tsv.gz",
ExtractName: "title.ratings.tsv",
},
}
var BaseDir = "/"
func GetTemplatePath() string {
return BaseDir + "/pkg/templates"
}
func GetDownloadPath() string {
return BaseDir + "/data/raw"
}
func GetExtractPath() string {
return BaseDir + "/data/extracted"
}
const (
ServePort = 8080
)
var TitleTypes = []string{"movie", "tvMovie"}
var NconstCategories = []string{"actress", "actor", "director", "writer"}
func NewPostgresURL() (string, error) {
username := utils.GetEnv("POSTGRES_USER", "")
if username == "" {
return "", fmt.Errorf("POSTGRES_USER env variable is not set")
}
password := utils.GetEnv("POSTGRES_PASSWORD", "")
if password == "" {
return "", fmt.Errorf("POSTGRES_PASSWORD env variable is not set")
}
host := utils.GetEnv("POSTGRES_HOST", "")
if host == "" {
return "", fmt.Errorf("POSTGRES_HOST env variable is not set")
}
port := utils.GetEnv("POSTGRES_PORT", "")
if port == "" {
return "", fmt.Errorf("POSTGRES_PORT env variable is not set")
}
_, err := strconv.Atoi(port)
if err != nil {
return "", fmt.Errorf("POSTGRES_PORT env variable is not a number")
}
db := utils.GetEnv("POSTGRES_DB", "")
if db == "" {
return "", fmt.Errorf("POSTGRES_DB env variable is not set")
}
return fmt.Sprintf(
"postgres://%s:%s@%s:%s/%s?sslmode=disable",
username, password, host, port, db,
), nil
}
func NewRecommenderServiceGrpcTarget() (string, error) {
host := utils.GetEnv("RECOMMENDER_SERVICE_GRPC_HOST", "")
if host == "" {
return "", fmt.Errorf("RECOMMENDER_SERVICE_GRPC_HOST env variable is not set")
}
port := utils.GetEnv("RECOMMENDER_SERVICE_GRPC_PORT", "")
if port == "" {
return "", fmt.Errorf("RECOMMENDER_SERVICE_GRPC_PORT env variable is not set")
}
_, err := strconv.Atoi(port)
if err != nil {
return "", fmt.Errorf("RECOMMENDER_SERVICE_GRPC_PORT env variable is not a number")
}
return fmt.Sprintf("%s:%s", host, port), nil
}
func GetBaseURL() string {
return utils.GetEnv("BASE_URL", "http://localhost:8080")
}