]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git/blame - api/admin.go
Better go import paths.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front.git] / api / admin.go
CommitLineData
2e4885d9 1package api
2
3import (
4 "fmt"
5
1d68446a 6 "git.immae.eu/Cryptoportfolio/Front.git/db"
2e4885d9 7)
8
9type GetAllPortfoliosQuery struct {
10 In struct {
11 Market string
12 }
13 Out map[string]Portfolio
14}
15
16func (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
24func (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}