7 type MarketConfigStatus string
9 const MarketConfigEnabled = "enabled"
10 const MarketConfigDisabled = "disabled"
11 const MarketConfigInvalidCredentials = "invalid_credentials"
13 type MarketConfig struct {
17 Status MarketConfigStatus
18 Config map[string]string
20 // Will be expanded by pg
24 func InsertMarketConfig(config *MarketConfig) error {
25 return DB.Insert(config)
28 func GetUserMarketConfig(userId int64, market string) (*MarketConfig, error) {
29 var config MarketConfig
31 err := DB.Model(&config).Where("user_id = ?", userId).Where("market_name = ?", market).First()
33 if err != nil && err != pg.ErrNoRows {
37 if err == pg.ErrNoRows {
44 func SetUserMarketConfig(userId int64, market string, newConfig map[string]string) (*MarketConfig, error) {
45 config := MarketConfig{
51 _, err := DB.Model(&config).
52 OnConflict("(user_id, market_name) DO UPDATE").
53 Set("config = ?", newConfig).
59 func SetMarketConfigStatus(marketConfig MarketConfig, status MarketConfigStatus) (*MarketConfig, error) {
60 marketConfig.Status = status
61 _, err := DB.Model(&marketConfig).
62 OnConflict("(user_id, market_name) DO UPDATE").
63 Set("status = ?", status).
66 return &marketConfig, err
69 func GetActiveUsers() ([]MarketConfig, error) {
70 var configs []MarketConfig
72 err := DB.Model(&configs).Column("User").Where("market_config.status=?", "enabled").Select()