diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/market_config.go | 25 | ||||
-rw-r--r-- | db/migrations.go | 11 |
2 files changed, 33 insertions, 3 deletions
diff --git a/db/market_config.go b/db/market_config.go index b26c092..30b4538 100644 --- a/db/market_config.go +++ b/db/market_config.go | |||
@@ -1,11 +1,20 @@ | |||
1 | package db | 1 | package db |
2 | 2 | ||
3 | import "github.com/go-pg/pg" | 3 | import ( |
4 | "github.com/go-pg/pg" | ||
5 | ) | ||
6 | |||
7 | type MarketConfigStatus string | ||
8 | |||
9 | const MarketConfigEnabled = "enabled" | ||
10 | const MarketConfigDisabled = "disabled" | ||
11 | const MarketConfigInvalidCredentials = "invalid_credentials" | ||
4 | 12 | ||
5 | type MarketConfig struct { | 13 | type MarketConfig struct { |
6 | Id int64 | 14 | Id int64 |
7 | MarketName string `sql:",notnull"` | 15 | MarketName string |
8 | UserId int64 `sql:",notnull"` | 16 | UserId int64 |
17 | Status MarketConfigStatus | ||
9 | Config map[string]string | 18 | Config map[string]string |
10 | } | 19 | } |
11 | 20 | ||
@@ -43,3 +52,13 @@ func SetUserMarketConfig(userId int64, market string, newConfig map[string]strin | |||
43 | 52 | ||
44 | return &config, err | 53 | return &config, err |
45 | } | 54 | } |
55 | |||
56 | func SetMarketConfigStatus(marketConfig MarketConfig, status MarketConfigStatus) (*MarketConfig, error) { | ||
57 | marketConfig.Status = status | ||
58 | _, err := DB.Model(&marketConfig). | ||
59 | OnConflict("(user_id, market_name) DO UPDATE"). | ||
60 | Set("status = ?", status). | ||
61 | Insert() | ||
62 | |||
63 | return &marketConfig, err | ||
64 | } | ||
diff --git a/db/migrations.go b/db/migrations.go index f6ecb60..f0df49c 100644 --- a/db/migrations.go +++ b/db/migrations.go | |||
@@ -78,4 +78,15 @@ var migrations []Migration = []Migration{ | |||
78 | }, | 78 | }, |
79 | Down: []string{"DROP VIEW view_balances", "DROP INDEX checkpoints_idx"}, | 79 | Down: []string{"DROP VIEW view_balances", "DROP INDEX checkpoints_idx"}, |
80 | }, | 80 | }, |
81 | { | ||
82 | Version: 201805101000, | ||
83 | Up: []string{ | ||
84 | "CREATE TYPE market_config_status AS ENUM ('enabled', 'disabled', 'invalid_credentials')", | ||
85 | "ALTER TABLE market_configs ADD status market_config_status NOT NULL DEFAULT 'disabled'", | ||
86 | }, | ||
87 | Down: []string{ | ||
88 | "ALTER TABLE market_configs DROP COLUMN status", | ||
89 | "DROP TYPE market_config_status", | ||
90 | }, | ||
91 | }, | ||
81 | } | 92 | } |