blob: 04cc39b148dff1f2659628fbe58a02a421dba65a [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 {
iomodob892d072021-02-22 00:23:16 +040017 SQLSettings SQLSettings
18 HTTPSettings HTTPSettings
19 GRPCSettings GRPCSettings
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() {
iomodob892d072021-02-22 00:23:16 +040029 c.SQLSettings.SetDefaults()
30 c.HTTPSettings.SetDefaults()
31 c.GRPCSettings.SetDefaults()
iomodo48c837e2021-02-19 01:17:07 +040032}
33
iomodob892d072021-02-22 00:23:16 +040034type SQLSettings struct {
35 DriverName string
36 DataSource string
iomodo48c837e2021-02-19 01:17:07 +040037}
38
iomodob892d072021-02-22 00:23:16 +040039func (s *SQLSettings) SetDefaults() {
iomodo48c837e2021-02-19 01:17:07 +040040 if s.DriverName == "" {
41 s.DriverName = databaseDriverPostgres
42 }
43
44 if s.DataSource == "" {
45 s.DataSource = defaultDataSource
46 }
47}
iomodob892d072021-02-22 00:23:16 +040048
49type HTTPSettings struct {
50 Host string
51 Port int
52 ReadTimeout int
53 WriteTimeout int
54 IdleTimeout int
55}
56
57func (s *HTTPSettings) SetDefaults() {
58 if s.Host == "" {
59 s.Host = defaultHTTPHost
60 }
61
62 if s.Port == 0 {
63 s.Port = defaultHTTPPort
64 }
65
66 if s.ReadTimeout == 0 {
67 s.ReadTimeout = defaultHTTPReadTimeout
68 }
69
70 if s.WriteTimeout == 0 {
71 s.WriteTimeout = defaultHTTPWriteTimeout
72 }
73
74 if s.IdleTimeout == 0 {
75 s.IdleTimeout = defaultHTTPIdleTimeout
76 }
77}
78
79type GRPCSettings struct {
80 Port int
81}
82
83func (s *GRPCSettings) SetDefaults() {
84 if s.Port == 0 {
85 s.Port = defaultGRPCPort
86 }
87}