IP기반 Seed 데이터 생성, 업데이트에 반영
This commit is contained in:
@@ -1,12 +1,23 @@
|
||||
package userprogram
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"geoip-rest/internal/geo"
|
||||
)
|
||||
|
||||
type Backend string
|
||||
|
||||
const (
|
||||
BackendMMDB Backend = "mmdb"
|
||||
BackendPostgres Backend = "postgres"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -88,6 +99,42 @@ func NewPathsFromEnv() (Paths, error) {
|
||||
return paths, nil
|
||||
}
|
||||
|
||||
func BackendFromEnv() Backend {
|
||||
val := strings.ToLower(env("GEOIP_BACKEND", string(BackendMMDB)))
|
||||
switch val {
|
||||
case string(BackendMMDB), "":
|
||||
return BackendMMDB
|
||||
case string(BackendPostgres):
|
||||
return BackendPostgres
|
||||
default:
|
||||
return BackendMMDB
|
||||
}
|
||||
}
|
||||
|
||||
func ResolveBackend(cfg geo.Config) (geo.Resolver, error) {
|
||||
switch Backend(cfg.Backend) {
|
||||
case BackendMMDB, "":
|
||||
if cfg.MMDBPath == "" {
|
||||
return nil, errors.New("MMDBPath required for mmdb backend")
|
||||
}
|
||||
return geo.NewResolver(geo.Config{
|
||||
Backend: geo.BackendMMDB,
|
||||
MMDBPath: cfg.MMDBPath,
|
||||
})
|
||||
case BackendPostgres:
|
||||
if cfg.DatabaseURL == "" {
|
||||
return nil, errors.New("DatabaseURL required for postgres backend")
|
||||
}
|
||||
return geo.NewResolver(geo.Config{
|
||||
Backend: geo.BackendPostgres,
|
||||
DatabaseURL: cfg.DatabaseURL,
|
||||
LookupQuery: cfg.LookupQuery,
|
||||
})
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported backend %s", cfg.Backend)
|
||||
}
|
||||
}
|
||||
|
||||
func ParseTargetDate(raw string) (time.Time, error) {
|
||||
if raw == "" {
|
||||
return yesterdayKST(), nil
|
||||
|
||||
Reference in New Issue
Block a user