From ecc6a55aba7bb35fc778e7a53848396b88214151 Mon Sep 17 00:00:00 2001 From: Leonardo Bishop Date: Sat, 23 Aug 2025 22:29:28 +0100 Subject: Add multiple conferences feature --- api/handlers/favourites.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'api/handlers/favourites.go') diff --git a/api/handlers/favourites.go b/api/handlers/favourites.go index 502cb43..d5fe8c3 100644 --- a/api/handlers/favourites.go +++ b/api/handlers/favourites.go @@ -2,6 +2,7 @@ package handlers import ( "net/http" + "strconv" "github.com/LMBishop/confplanner/api/dto" "github.com/LMBishop/confplanner/pkg/favourites" @@ -16,7 +17,7 @@ func CreateFavourite(service favourites.Service) http.HandlerFunc { return err } - if request.GUID == nil && request.ID == nil { + if request.GUID == nil && request.EventID == nil { return &dto.ErrorResponse{ Code: http.StatusBadRequest, Message: "One of event GUID or event ID must be specified", @@ -34,7 +35,7 @@ func CreateFavourite(service favourites.Service) http.HandlerFunc { } } - createdFavourite, err := service.CreateFavouriteForUser(session.UserID, uuid, request.ID) + createdFavourite, err := service.CreateFavouriteForUser(session.UserID, uuid, request.EventID, request.ConferenceID) if err != nil { return err } @@ -50,9 +51,17 @@ func CreateFavourite(service favourites.Service) http.HandlerFunc { func GetFavourites(service favourites.Service) http.HandlerFunc { return dto.WrapResponseFunc(func(w http.ResponseWriter, r *http.Request) error { + conferenceID, err := strconv.Atoi(r.PathValue("id")) + if err != nil { + return &dto.ErrorResponse{ + Code: http.StatusBadRequest, + Message: "Bad conference ID", + } + } + session := r.Context().Value("session").(*session.UserSession) - favourites, err := service.GetFavouritesForUser(session.UserID) + favourites, err := service.GetFavouritesForUserConference(session.UserID, int32(conferenceID)) if err != nil { return err } @@ -79,7 +88,7 @@ func DeleteFavourite(service favourites.Service) http.HandlerFunc { return err } - if request.GUID == nil && request.ID == nil { + if request.GUID == nil && request.EventID == nil { return &dto.ErrorResponse{ Code: http.StatusBadRequest, Message: "One of event GUID or event ID must be specified", @@ -96,7 +105,7 @@ func DeleteFavourite(service favourites.Service) http.HandlerFunc { } } - err = service.DeleteFavouriteForUserByEventDetails(session.UserID, uuid, request.ID) + err = service.DeleteFavouriteForUserByEventDetails(session.UserID, uuid, request.EventID, request.ConferenceID) if err != nil { if err == favourites.ErrNotFound { return &dto.ErrorResponse{ -- cgit v1.2.3-70-g09d2