From 2e4885d98ec49203180deb7e4e9148762e4720e7 Mon Sep 17 00:00:00 2001 From: jloup Date: Sun, 13 May 2018 23:14:26 +0200 Subject: Admin minimal dashboard. --- api/admin.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 api/admin.go (limited to 'api/admin.go') 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 @@ +package api + +import ( + "fmt" + + "immae.eu/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Front/db" +) + +type GetAllPortfoliosQuery struct { + In struct { + Market string + } + Out map[string]Portfolio +} + +func (q GetAllPortfoliosQuery) ValidateParams() *Error { + if q.In.Market != "poloniex" { + return &Error{BadRequest, "invalid market name", fmt.Errorf("'%v' is not a valid market name", q.In.Market)} + } + + return nil +} + +func (q GetAllPortfoliosQuery) Run() (interface{}, *Error) { + u, err := db.GetActiveUsers() + if err != nil { + return nil, NewInternalError(err) + } + + q.Out = make(map[string]Portfolio) + + for _, marketConfig := range u { + report, err := GetWeekPortfolio(marketConfig) + if ErrorIs(err, NotFound) { + continue + } + + if err != nil { + return nil, NewInternalError(err) + } + + q.Out[marketConfig.User.Email] = report.Round() + } + + return q.Out, nil +} -- cgit v1.2.3