diff options
author | jloup <jloup@jloup.work> | 2018-05-13 23:14:26 +0200 |
---|---|---|
committer | jloup <jloup@jloup.work> | 2018-05-13 23:18:48 +0200 |
commit | 2e4885d98ec49203180deb7e4e9148762e4720e7 (patch) | |
tree | f018a158d2f39133a21dba899176f6fde606bd92 /api/admin.go | |
parent | 6bf174a95ba0f71abf25397316fc101405381cdf (diff) | |
download | Front-2e4885d98ec49203180deb7e4e9148762e4720e7.tar.gz Front-2e4885d98ec49203180deb7e4e9148762e4720e7.tar.zst Front-2e4885d98ec49203180deb7e4e9148762e4720e7.zip |
Admin minimal dashboard.v0.0.14
Diffstat (limited to 'api/admin.go')
-rw-r--r-- | api/admin.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/api/admin.go b/api/admin.go new file mode 100644 index 0000000..0ac6050 --- /dev/null +++ b/api/admin.go | |||
@@ -0,0 +1,46 @@ | |||
1 | package api | ||
2 | |||
3 | import ( | ||
4 | "fmt" | ||
5 | |||
6 | "immae.eu/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front/db" | ||
7 | ) | ||
8 | |||
9 | type GetAllPortfoliosQuery struct { | ||
10 | In struct { | ||
11 | Market string | ||
12 | } | ||
13 | Out map[string]Portfolio | ||
14 | } | ||
15 | |||
16 | func (q GetAllPortfoliosQuery) ValidateParams() *Error { | ||
17 | if q.In.Market != "poloniex" { | ||
18 | return &Error{BadRequest, "invalid market name", fmt.Errorf("'%v' is not a valid market name", q.In.Market)} | ||
19 | } | ||
20 | |||
21 | return nil | ||
22 | } | ||
23 | |||
24 | func (q GetAllPortfoliosQuery) Run() (interface{}, *Error) { | ||
25 | u, err := db.GetActiveUsers() | ||
26 | if err != nil { | ||
27 | return nil, NewInternalError(err) | ||
28 | } | ||
29 | |||
30 | q.Out = make(map[string]Portfolio) | ||
31 | |||
32 | for _, marketConfig := range u { | ||
33 | report, err := GetWeekPortfolio(marketConfig) | ||
34 | if ErrorIs(err, NotFound) { | ||
35 | continue | ||
36 | } | ||
37 | |||
38 | if err != nil { | ||
39 | return nil, NewInternalError(err) | ||
40 | } | ||
41 | |||
42 | q.Out[marketConfig.User.Email] = report.Round() | ||
43 | } | ||
44 | |||
45 | return q.Out, nil | ||
46 | } | ||