]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blobdiff - db/market_config.go
bot_setting table.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / db / market_config.go
index b26c0920bf30bbfcfda36478589c4a57d19437e0..afb2842a529c94ef348922d2e4ae9e438f7160c4 100644 (file)
@@ -1,12 +1,24 @@
 package db
 
-import "github.com/go-pg/pg"
+import (
+       "github.com/go-pg/pg"
+)
+
+type MarketConfigStatus string
+
+const MarketConfigEnabled = "enabled"
+const MarketConfigDisabled = "disabled"
+const MarketConfigInvalidCredentials = "invalid_credentials"
 
 type MarketConfig struct {
        Id         int64
-       MarketName string `sql:",notnull"`
-       UserId     int64  `sql:",notnull"`
+       MarketName string
+       UserId     int64
+       Status     MarketConfigStatus
        Config     map[string]string
+
+       // Will be expanded by pg
+       User User
 }
 
 func InsertMarketConfig(config *MarketConfig) error {
@@ -43,3 +55,24 @@ func SetUserMarketConfig(userId int64, market string, newConfig map[string]strin
 
        return &config, err
 }
+
+func SetMarketConfigStatus(marketConfig MarketConfig, status MarketConfigStatus) (*MarketConfig, error) {
+       marketConfig.Status = status
+       _, err := DB.Model(&marketConfig).
+               OnConflict("(user_id, market_name) DO UPDATE").
+               Set("status = ?", status).
+               Insert()
+
+       return &marketConfig, err
+}
+
+func GetActiveUsers() ([]MarketConfig, error) {
+       var configs []MarketConfig
+
+       err := DB.Model(&configs).Column("User").Where("market_config.status=?", "enabled").Select()
+       if err != nil {
+               return nil, err
+       }
+
+       return configs, nil
+}