• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

frolmr / gophermart / #1

20 Feb 2025 03:09PM UTC coverage: 62.191%. First build
#1

Pull #1

frolmr
Code review fixes
Pull Request #1: Increment 5-6

579 of 931 new or added lines in 27 files covered. (62.19%)

579 of 931 relevant lines covered (62.19%)

2.87 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/internal/api/controller/controller.go
1
package controller
2

3
import (
4
        "github.com/frolmr/gophermart/internal/api/handlers"
5
        mw "github.com/frolmr/gophermart/internal/api/middleware"
6
        "github.com/frolmr/gophermart/internal/config"
7
        "github.com/frolmr/gophermart/internal/domain"
8
        "github.com/frolmr/gophermart/internal/storage"
9
        "github.com/go-chi/chi/v5"
10
        "github.com/go-chi/chi/v5/middleware"
11
        "go.uber.org/zap"
12
)
13

14
type Controller struct {
15
        Storage    *storage.Storage
16
        AuthConfig *config.AuthConfig
17
}
18

NEW
19
func NewController(stor *storage.Storage) (*Controller, error) {
×
NEW
20
        authCfg, err := config.NewAuthConfig()
×
NEW
21
        if err != nil {
×
NEW
22
                return nil, err
×
NEW
23
        }
×
24

NEW
25
        return &Controller{
×
NEW
26
                Storage:    stor,
×
NEW
27
                AuthConfig: authCfg,
×
NEW
28
        }, nil
×
29
}
30

NEW
31
func (c *Controller) SetupRouter(lgr *zap.SugaredLogger) chi.Router {
×
NEW
32
        r := chi.NewRouter()
×
NEW
33

×
NEW
34
        r.Use(middleware.Logger)
×
NEW
35
        r.Use(middleware.Recoverer)
×
NEW
36

×
NEW
37
        rh := handlers.NewRequestHandlers(lgr, c.Storage)
×
NEW
38

×
NEW
39
        r.Route("/api/user/", func(r chi.Router) {
×
NEW
40
                r.Use(middleware.AllowContentType(domain.JSONContentType))
×
NEW
41
                r.Post("/register", rh.UsersHandler.RegisterUser(c.AuthConfig))
×
NEW
42
                r.Post("/login", rh.UsersHandler.LoginUser(c.AuthConfig))
×
NEW
43
        })
×
44

NEW
45
        r.Route("/api/user/orders", func(r chi.Router) {
×
NEW
46
                r.Use(mw.WithAuth(c.AuthConfig))
×
NEW
47
                r.Post("/", rh.OrdersHandler.LoadOrder)
×
NEW
48
                r.Get("/", rh.OrdersHandler.GetOrders)
×
NEW
49
        })
×
50

NEW
51
        r.Route("/api/user/balance", func(r chi.Router) {
×
NEW
52
                r.Use(mw.WithAuth(c.AuthConfig))
×
NEW
53
                r.Get("/", rh.BalancesHandler.GetBalance)
×
NEW
54
                r.Post("/withdraw", rh.WithdrawalsHandler.RegisterWithdrawal)
×
NEW
55
        })
×
56

NEW
57
        r.With(mw.WithAuth(c.AuthConfig)).Get("/api/user/withdrawals", rh.WithdrawalsHandler.GetWithdrawals)
×
NEW
58

×
NEW
59
        return r
×
60
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc