143 lines
4.1 KiB
Go
143 lines
4.1 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"strconv"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
domain "github.com/haydenhargreaves/Potion/internal/domain/user"
|
|
)
|
|
|
|
func (s *Server) GetUserV2(ctx *gin.Context) {
|
|
id := ctx.Param("id")
|
|
parsedId, err := strconv.Atoi(id)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Failed to parse ID parameter. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
user, err := s.deps.UserService.GetUser(parsedId)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Failed to get the target user. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved target user.",
|
|
"user": user,
|
|
})
|
|
}
|
|
|
|
func (s *Server) GetAuthenticatedUserHandlerV2(ctx *gin.Context) {
|
|
s.withAuthenticatedUser(ctx, func(ctx *gin.Context, user *domain.User) {
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved authenticated user.",
|
|
"user": user,
|
|
})
|
|
})
|
|
}
|
|
|
|
func (s *Server) GetAuthenicatedUserRecipesV2(ctx *gin.Context) {
|
|
s.withAuthenticatedUser(ctx, func(ctx *gin.Context, user *domain.User) {
|
|
recipes, err := s.deps.RecipeService.GetUserRecipes(user.Id)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Could not fetch authenticated users's recipes. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved authenticated user's recipes.",
|
|
"recipes": recipes,
|
|
})
|
|
})
|
|
}
|
|
|
|
func (s *Server) GetAuthenicatedUserFavoritesV2(ctx *gin.Context) {
|
|
s.withAuthenticatedUser(ctx, func(ctx *gin.Context, user *domain.User) {
|
|
favorites, err := s.deps.RecipeService.GetUserFavoriteRecipes(user.Id)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Could not fetch authenticated users's favorites. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved authenticated user's favorites.",
|
|
"favorites": favorites,
|
|
})
|
|
})
|
|
}
|
|
|
|
func (s *Server) GetAuthenicatedUserEngagementV2(ctx *gin.Context) {
|
|
s.withAuthenticatedUser(ctx, func(ctx *gin.Context, user *domain.User) {
|
|
engagement, err := s.deps.EngagementService.GetUserEngagement(user.Id, 6)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Failed to get authenticated user engagement. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved authenticated user engagement.",
|
|
"engagement": engagement,
|
|
})
|
|
})
|
|
}
|
|
|
|
func (s *Server) GetAuthenicatedUserMadeRecipesV2(ctx *gin.Context) {
|
|
s.withAuthenticatedUser(ctx, func(ctx *gin.Context, user *domain.User) {
|
|
recipes, err := s.deps.RecipeService.GetUserMadeRecipes(user.Id, 6)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Failed to get authenticated user's made recipes. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved authenticated user's made recipes.",
|
|
"recipes": recipes,
|
|
})
|
|
})
|
|
}
|
|
|
|
func (s *Server) GetAuthenicatedUserViewedRecipesV2(ctx *gin.Context) {
|
|
s.withAuthenticatedUser(ctx, func(ctx *gin.Context, user *domain.User) {
|
|
recipes, err := s.deps.RecipeService.GetUserViewedRecipes(user.Id, 6)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("[ERROR] Failed to get authenticated user's viewed recipes. %s", err.Error()),
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "[OK] Successfully retrieved authenticated user's viewed recipes.",
|
|
"recipes": recipes,
|
|
})
|
|
})
|
|
}
|