added event-creation
This commit is contained in:
@@ -5,6 +5,43 @@ import (
|
||||
"github.com/johannesbuehl/golunteer/backend/pkg/db/events"
|
||||
)
|
||||
|
||||
func postEvent(args HandlerArgs) responseMessage {
|
||||
response := responseMessage{}
|
||||
|
||||
// write the event
|
||||
var body events.EventCreate
|
||||
|
||||
// try to parse the body
|
||||
if err := args.C.BodyParser(&body); err != nil {
|
||||
response.Status = fiber.StatusBadRequest
|
||||
|
||||
logger.Log().Msgf("can't parse body: %v", err)
|
||||
|
||||
// validate the parsed body
|
||||
} else if err := validate.Struct(body); err != nil {
|
||||
response.Status = fiber.StatusBadRequest
|
||||
|
||||
logger.Log().Msgf("invalid body: %v", err)
|
||||
|
||||
// create the event
|
||||
} else if err := events.Create(body); err != nil {
|
||||
response.Status = fiber.StatusInternalServerError
|
||||
|
||||
logger.Error().Msgf("can't create event: %v", err)
|
||||
} else {
|
||||
// respond with the new events
|
||||
if events, err := events.WithAssignments(); err != nil {
|
||||
response.Status = fiber.StatusInternalServerError
|
||||
|
||||
logger.Error().Msgf("can't retrieve events: %v", err)
|
||||
} else {
|
||||
response.Data = events
|
||||
}
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
func getEventsAssignments(args HandlerArgs) responseMessage {
|
||||
response := responseMessage{}
|
||||
|
||||
|
||||
@@ -74,8 +74,12 @@ func init() {
|
||||
|
||||
// map with the individual registered endpoints
|
||||
endpoints := map[string]map[string]func(HandlerArgs) responseMessage{
|
||||
"GET": {"events/assignments": getEventsAssignments, "events/user/pending": getEventsUserPending},
|
||||
"POST": {},
|
||||
"GET": {
|
||||
"events/assignments": getEventsAssignments,
|
||||
"events/user/pending": getEventsUserPending,
|
||||
"tasks": getTasks,
|
||||
},
|
||||
"POST": {"events": postEvent},
|
||||
"PATCH": {},
|
||||
"DELETE": {},
|
||||
}
|
||||
|
||||
20
backend/pkg/router/tasks.go
Normal file
20
backend/pkg/router/tasks.go
Normal file
@@ -0,0 +1,20 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/johannesbuehl/golunteer/backend/pkg/db/tasks"
|
||||
)
|
||||
|
||||
func getTasks(args HandlerArgs) responseMessage {
|
||||
response := responseMessage{}
|
||||
|
||||
if tasks, err := tasks.Get(); err != nil {
|
||||
response.Status = fiber.StatusInternalServerError
|
||||
|
||||
logger.Error().Msgf("can't get tasks: %v", err)
|
||||
} else {
|
||||
response.Data = tasks
|
||||
}
|
||||
|
||||
return response
|
||||
}
|
||||
Reference in New Issue
Block a user