This repository has been archived on 2025-05-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
Hochzeit/handlers/handlers.go

57 lines
1.2 KiB
Go

package handlers
import (
"encoding/json"
"io"
"io/ioutil"
"net/http"
"git.cosysda.de/HuskyTeufel/Hochzeit/planner"
"github.com/gin-gonic/gin"
"github.com/jinzhu/gorm"
)
type EnvHandler struct {
DB *gorm.DB
}
func (e *EnvHandler) GetBesucherListHandler(c *gin.Context) {
c.JSON(http.StatusOK, planner.Get(e.DB))
}
func (e *EnvHandler) AddBesucherHandler(c *gin.Context) {
besucherItem, statusCode, err := convertHTTPBodyToBesucher(c.Request.Body)
if err != nil {
c.JSON(statusCode, err)
return
}
c.JSON(statusCode, gin.H{"id": planner.Add(e.DB, besucherItem)})
}
func (e *EnvHandler) DeleteBesucherHandler(c *gin.Context) {
}
func (e *EnvHandler) ComeBesucherHandler(c *gin.Context) {
}
func convertHTTPBodyToBesucher(httpBody io.ReadCloser) (planner.Besucher, int, error) {
body, err := ioutil.ReadAll(httpBody)
if err != nil {
return planner.Besucher{}, http.StatusInternalServerError, err
}
defer httpBody.Close()
return convertJSONBodyToBesucher(body)
}
func convertJSONBodyToBesucher(jsonBody []byte) (planner.Besucher, int, error) {
var besucherItem planner.Besucher
err := json.Unmarshal(jsonBody, &besucherItem)
if err != nil {
return planner.Besucher{}, http.StatusBadRequest, err
}
return besucherItem, http.StatusOK, nil
}