started work on task assignment table

This commit is contained in:
z1glr
2025-01-11 12:27:41 +00:00
parent 2a746cf76d
commit 4f203704a6
13 changed files with 226 additions and 157 deletions

View File

@@ -56,6 +56,25 @@ func getEventsAssignments(args HandlerArgs) responseMessage {
return response
}
func getEventsAvailabilities(args HandlerArgs) responseMessage {
response := responseMessage{}
// check for admin
if !args.User.Admin {
response.Status = fiber.StatusForbidden
} else {
if events, err := events.WithAvailabilities(); err != nil {
response.Status = fiber.StatusInternalServerError
logger.Error().Msgf("can't retrieve events with availabilities: %v", err)
} else {
response.Data = events
}
}
return response
}
func getEventsUserPending(args HandlerArgs) responseMessage {
response := responseMessage{}

View File

@@ -73,8 +73,8 @@ func handleLogin(c *fiber.Ctx) error {
} else {
// password is correct -> generate the JWT
if jwt, err := config.SignJWT(JWTPayload{
UserID: requestBody.Username,
TokenID: result.TokenID,
UserName: requestBody.Username,
TokenID: result.TokenID,
}); err != nil {
response.Status = fiber.StatusInternalServerError
logger.Error().Msgf("can't create JWT: %v", err)

View File

@@ -75,9 +75,10 @@ func init() {
// map with the individual registered endpoints
endpoints := map[string]map[string]func(HandlerArgs) responseMessage{
"GET": {
"events/assignments": getEventsAssignments,
"events/user/pending": getEventsUserPending,
"tasks": getTasks,
"events/assignments": getEventsAssignments,
"events/availabilities": getEventsAvailabilities,
"events/user/pending": getEventsUserPending,
"tasks": getTasks,
},
"POST": {"events": postEvent},
"PATCH": {},
@@ -160,8 +161,8 @@ func removeSessionCookie(c *fiber.Ctx) {
// payload of the JSON webtoken
type JWTPayload struct {
UserID string `json:"userID"`
TokenID string `json:"tokenID"`
UserName string `json:"userName"`
TokenID string `json:"tokenID"`
}
// complete JSON webtoken
@@ -172,7 +173,7 @@ type JWT struct {
// extracts the json webtoken from the request
//
// @returns (userID, tokenID, error)
// @returns (userName, tokenID, error)
func extractJWT(c *fiber.Ctx) (string, string, error) {
// get the session-cookie
cookie := c.Cookies("session")
@@ -191,7 +192,7 @@ func extractJWT(c *fiber.Ctx) (string, string, error) {
// extract the claims from the JWT
if claims, ok := token.Claims.(*JWT); ok && token.Valid {
return claims.CustomClaims.UserID, claims.CustomClaims.TokenID, nil
return claims.CustomClaims.UserName, claims.CustomClaims.TokenID, nil
} else {
return "", "", fmt.Errorf("invalid JWT")
}