]>
Commit | Line | Data |
---|---|---|
7a9e5112 | 1 | package db |
2 | ||
299b6b6d | 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" | |
7a9e5112 | 12 | |
13 | type MarketConfig struct { | |
14 | Id int64 | |
299b6b6d | 15 | MarketName string |
16 | UserId int64 | |
17 | Status MarketConfigStatus | |
7a9e5112 | 18 | Config map[string]string |
19 | } | |
20 | ||
21 | func InsertMarketConfig(config *MarketConfig) error { | |
22 | return DB.Insert(config) | |
23 | } | |
24 | ||
25 | func GetUserMarketConfig(userId int64, market string) (*MarketConfig, error) { | |
26 | var config MarketConfig | |
27 | ||
28 | err := DB.Model(&config).Where("user_id = ?", userId).Where("market_name = ?", market).First() | |
29 | ||
30 | if err != nil && err != pg.ErrNoRows { | |
31 | return nil, err | |
32 | } | |
33 | ||
34 | if err == pg.ErrNoRows { | |
35 | return nil, nil | |
36 | } else { | |
37 | return &config, nil | |
38 | } | |
39 | } | |
40 | ||
41 | func SetUserMarketConfig(userId int64, market string, newConfig map[string]string) (*MarketConfig, error) { | |
42 | config := MarketConfig{ | |
43 | UserId: userId, | |
44 | MarketName: market, | |
45 | Config: newConfig, | |
46 | } | |
47 | ||
48 | _, err := DB.Model(&config). | |
49 | OnConflict("(user_id, market_name) DO UPDATE"). | |
50 | Set("config = ?", newConfig). | |
51 | Insert() | |
52 | ||
53 | return &config, err | |
54 | } | |
299b6b6d | 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 | } |