package controllers import ( "GoMembership/internal/config" "GoMembership/internal/constants" "GoMembership/internal/middlewares" "GoMembership/internal/models" "GoMembership/internal/services" "GoMembership/internal/utils" "GoMembership/internal/validation" "fmt" "strings" "net/http" "github.com/gin-gonic/gin" "GoMembership/pkg/errors" "GoMembership/pkg/logger" ) type UserController struct { Service services.UserServiceInterface EmailService *services.EmailService ConsentService services.ConsentServiceInterface BankAccountService services.BankAccountServiceInterface MembershipService services.MembershipServiceInterface LicenceService services.LicenceInterface } type RegistrationData struct { User models.User `json:"user"` } func (uc *UserController) CurrentUserHandler(c *gin.Context) { requestUser, err := uc.ExtractUserFromContext(c) if err != nil { utils.RespondWithError(c, err, "Error extracting user from context in CurrentUserHandler", http.StatusBadRequest, errors.Responses.Fields.User, errors.Responses.Keys.NoAuthToken) return } c.JSON(http.StatusOK, gin.H{ "user": requestUser.Safe(), }) } func (uc *UserController) GetAllUsers(c *gin.Context) { requestUser, err := uc.ExtractUserFromContext(c) if err != nil { utils.RespondWithError(c, err, "Error extracting user from context in UpdateHandler", http.StatusBadRequest, errors.Responses.Fields.User, errors.Responses.Keys.NoAuthToken) return } if !utils.HasPrivilige(requestUser, constants.Priviliges.View) { utils.RespondWithError(c, errors.ErrNotAuthorized, fmt.Sprintf("Not allowed to handle all users. RoleID(%v)