The profile list will now properly display the users recipes! The favorites list does not exist yet, since there is no backend support for favoriting/saving recipes. So the list displays the same content as the user recipe list. Same goes for the activity list, not yet implemented.
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package handlers
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
domain "github.com/haydenhargreaves/Potion/internal/domain/server"
|
|
)
|
|
|
|
func GetUserRecipes(ctx *gin.Context) {
|
|
deps := ctx.MustGet("deps").(*domain.InjectedDependencies)
|
|
|
|
// Ensure logged in
|
|
if !domain.IsLoggedIn(ctx) {
|
|
ctx.JSON(http.StatusUnauthorized, gin.H{
|
|
"status": http.StatusUnauthorized,
|
|
"message": "User is not authorized to access this endpoint. Please login to continue.",
|
|
"recipes": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
userId, ok := ctx.MustGet("userId").(int)
|
|
if !ok {
|
|
ctx.JSON(http.StatusInternalServerError, gin.H{
|
|
"status": http.StatusInternalServerError,
|
|
"message": "Unable to access user id from store.",
|
|
"recipes": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
recipes, err := deps.RecipeService.GetUserRecipes(userId)
|
|
if err != nil {
|
|
ctx.JSON(http.StatusBadRequest, gin.H{
|
|
"status": http.StatusBadRequest,
|
|
"message": fmt.Sprintf("Could not get user recipes. %s", err.Error()),
|
|
"recipes": nil,
|
|
})
|
|
return
|
|
}
|
|
|
|
ctx.JSON(http.StatusOK, gin.H{
|
|
"status": http.StatusOK,
|
|
"message": "User recipes successfully retrieved.",
|
|
"recipes": recipes,
|
|
})
|
|
}
|