]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - db/market_config.go
Admin minimal dashboard.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / db / market_config.go
CommitLineData
7a9e5112 1package db
2
299b6b6d 3import (
4 "github.com/go-pg/pg"
5)
6
7type MarketConfigStatus string
8
9const MarketConfigEnabled = "enabled"
10const MarketConfigDisabled = "disabled"
11const MarketConfigInvalidCredentials = "invalid_credentials"
7a9e5112 12
13type MarketConfig struct {
14 Id int64
299b6b6d 15 MarketName string
16 UserId int64
17 Status MarketConfigStatus
7a9e5112 18 Config map[string]string
2e4885d9 19
20 // Will be expanded by pg
21 User User
7a9e5112 22}
23
24func InsertMarketConfig(config *MarketConfig) error {
25 return DB.Insert(config)
26}
27
28func GetUserMarketConfig(userId int64, market string) (*MarketConfig, error) {
29 var config MarketConfig
30
31 err := DB.Model(&config).Where("user_id = ?", userId).Where("market_name = ?", market).First()
32
33 if err != nil && err != pg.ErrNoRows {
34 return nil, err
35 }
36
37 if err == pg.ErrNoRows {
38 return nil, nil
39 } else {
40 return &config, nil
41 }
42}
43
44func SetUserMarketConfig(userId int64, market string, newConfig map[string]string) (*MarketConfig, error) {
45 config := MarketConfig{
46 UserId: userId,
47 MarketName: market,
48 Config: newConfig,
49 }
50
51 _, err := DB.Model(&config).
52 OnConflict("(user_id, market_name) DO UPDATE").
53 Set("config = ?", newConfig).
54 Insert()
55
56 return &config, err
57}
299b6b6d 58
59func 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).
64 Insert()
65
66 return &marketConfig, err
67}
2e4885d9 68
69func GetActiveUsers() ([]MarketConfig, error) {
70 var configs []MarketConfig
71
72 err := DB.Model(&configs).Column("User").Where("market_config.status=?", "enabled").Select()
73 if err != nil {
74 return nil, err
75 }
76
77 return configs, nil
78}