X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=db%2Fmarket_config.go;h=afb2842a529c94ef348922d2e4ae9e438f7160c4;hb=4059b21bd00261699ae6c7619adf053a607073e5;hp=b26c0920bf30bbfcfda36478589c4a57d19437e0;hpb=7a9e5112eaaea58d55f181d3e5296e4ff839921c;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FFront.git diff --git a/db/market_config.go b/db/market_config.go index b26c092..afb2842 100644 --- a/db/market_config.go +++ b/db/market_config.go @@ -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 +}