blob: fd8c0342d7737fb5ea976f0b964987ebd28a09b9 [file] [log] [blame]
iomodo48c837e2021-02-19 01:17:07 +04001package model
2
3const (
4 databaseDriverPostgres = "postgres"
5 defaultDataSource = "postgres://user:test@localhost/pcloud_test?sslmode=disable&connect_timeout=10"
iomodob892d072021-02-22 00:23:16 +04006
7 defaultHTTPHost = "0.0.0.0"
8 defaultHTTPPort = 9086
9 defaultHTTPReadTimeout = 5
10 defaultHTTPWriteTimeout = 10
11 defaultHTTPIdleTimeout = 120
12
13 defaultGRPCPort = 9087
iomodo48c837e2021-02-19 01:17:07 +040014)
15
16type Config struct {
iomodoc0479a62021-02-22 20:08:36 +040017 SQL SQLConfig
18 HTTP HTTPConfig
19 GRPC GRPCConfig
iomodo48c837e2021-02-19 01:17:07 +040020}
21
iomodoc6abf5b2021-02-19 14:48:03 +040022func NewConfig() *Config {
23 config := &Config{}
24 config.SetDefaults()
25 return config
26}
27
iomodo48c837e2021-02-19 01:17:07 +040028func (c *Config) SetDefaults() {
iomodoc0479a62021-02-22 20:08:36 +040029 c.SQL.SetDefaults()
30 c.HTTP.SetDefaults()
31 c.GRPC.SetDefaults()
iomodo48c837e2021-02-19 01:17:07 +040032}
33
iomodoc0479a62021-02-22 20:08:36 +040034type SQLConfig struct {
iomodob892d072021-02-22 00:23:16 +040035 DriverName string
36 DataSource string
iomodo48c837e2021-02-19 01:17:07 +040037}
38
iomodoc0479a62021-02-22 20:08:36 +040039func (s *SQLConfig) SetDefaults() {
iomodo48c837e2021-02-19 01:17:07 +040040 if s.DriverName == "" {
41 s.DriverName = databaseDriverPostgres
42 }
iomodo48c837e2021-02-19 01:17:07 +040043 if s.DataSource == "" {
44 s.DataSource = defaultDataSource
45 }
46}
iomodob892d072021-02-22 00:23:16 +040047
iomodoc0479a62021-02-22 20:08:36 +040048type HTTPConfig struct {
iomodob892d072021-02-22 00:23:16 +040049 Host string
50 Port int
51 ReadTimeout int
52 WriteTimeout int
53 IdleTimeout int
54}
55
iomodoc0479a62021-02-22 20:08:36 +040056func (s *HTTPConfig) SetDefaults() {
iomodob892d072021-02-22 00:23:16 +040057 if s.Host == "" {
58 s.Host = defaultHTTPHost
59 }
iomodob892d072021-02-22 00:23:16 +040060 if s.Port == 0 {
61 s.Port = defaultHTTPPort
62 }
iomodob892d072021-02-22 00:23:16 +040063 if s.ReadTimeout == 0 {
64 s.ReadTimeout = defaultHTTPReadTimeout
65 }
iomodob892d072021-02-22 00:23:16 +040066 if s.WriteTimeout == 0 {
67 s.WriteTimeout = defaultHTTPWriteTimeout
68 }
iomodob892d072021-02-22 00:23:16 +040069 if s.IdleTimeout == 0 {
70 s.IdleTimeout = defaultHTTPIdleTimeout
71 }
72}
73
iomodoc0479a62021-02-22 20:08:36 +040074type GRPCConfig struct {
iomodob892d072021-02-22 00:23:16 +040075 Port int
76}
77
iomodoc0479a62021-02-22 20:08:36 +040078func (s *GRPCConfig) SetDefaults() {
iomodob892d072021-02-22 00:23:16 +040079 if s.Port == 0 {
80 s.Port = defaultGRPCPort
81 }
82}