started work on task assignment table
This commit is contained in:
@@ -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{}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user