Skip to content
This repository has been archived by the owner on Sep 11, 2022. It is now read-only.

Commit

Permalink
Merge branch 'main' of github.com:BrosSquad/go-collect
Browse files Browse the repository at this point in the history
  • Loading branch information
Dusan Malusev committed Mar 13, 2022
2 parents 6709047 + 2f79875 commit cce0ff3
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 4 deletions.
9 changes: 5 additions & 4 deletions backend/pkg/container/container.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,11 @@ type Container struct {
// Services
qrCodeGeneratorService *qrcode.QRCode
participantService *event.ParticipantService
loginService *auth.LoginService
exchangeRateService *services.ExchangeRateService
ledgerService *ledger.Service
achievementService *achievement.AchievementService
loginService *auth.LoginService
exchangeRateService *services.ExchangeRateService
ledgerService *ledger.Service
achievementService *achievement.AchievementService
eventService *event.EventService
}

func New(config *viper.Viper) *Container {
Expand Down
10 changes: 10 additions & 0 deletions backend/pkg/container/services.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,13 @@ func (c *Container) GetAchievementService() *achievement.AchievementService {

return c.achievementService
}

func (c *Container) GetEventService() *event.EventService {
if c.eventService != nil {
return c.eventService
}

c.eventService = event.NewEventService(c.GetDbConnection(), c.GetDefaultLogger())

return c.eventService
}
21 changes: 21 additions & 0 deletions backend/pkg/http/handlers/events/event.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package events

import (
"github.com/BrosSquad/go-collect/pkg/services/event"
"github.com/gofiber/fiber/v2"
"github.com/rs/zerolog"
)

func GetEventHandler(eventService *event.EventService, logger zerolog.Logger) fiber.Handler {
return func(c *fiber.Ctx) error {
data, err := eventService.GetEvents(c.UserContext())

if err != nil {
return err
}

return c.Status(fiber.StatusOK).JSON(fiber.Map{
"data": data,
})
}
}
1 change: 1 addition & 0 deletions backend/pkg/http/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ func registerRoutes(c *container.Container, app *fiber.App) {
app.Post("/ledger", authMiddleware, handlers.InsertLedger(c.GetLedgerService()))
app.Get("/", middleware.Auth(c.GetLoginService(), c.GetDefaultLogger()), handlers.HelloWorld())

app.Get("/events", middleware.Auth(c.GetLoginService(), c.GetDefaultLogger()), events.GetEventHandler(c.GetEventService(), c.GetDefaultLogger()))
app.Post("/event/:eventId/participate", middleware.Auth(c.GetLoginService(), c.GetDefaultLogger()), events.ParticipantHandler())
app.Get("/exchange-rates", handlers.ExchangeRateHandler(c.GetExchangeRateService(), c.GetDefaultLogger()))
app.Get("/achievements", achievement.AchievementHandler(c.GetAchievementService(), c.GetDefaultLogger()))
Expand Down
34 changes: 34 additions & 0 deletions backend/pkg/services/event/event.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package event

import (
"context"
"github.com/BrosSquad/go-collect/pkg/models"
"github.com/rs/zerolog"
"gorm.io/gorm"
)

type EventService struct {
db *gorm.DB
logger zerolog.Logger
}

func NewEventService(db *gorm.DB, logger zerolog.Logger) *EventService {
return &EventService{
db: db,
logger: logger,
}
}

func (service *EventService) GetEvents(ctx context.Context) ([]models.Event, error) {
db := service.db.WithContext(ctx)

var events []models.Event

result := db.Find(&events)

if result.Error != nil {
return []models.Event{}, result.Error
}

return events, nil
}

0 comments on commit cce0ff3

Please sign in to comment.