Something went wrong. Try again.
My PaaS for hosting multiple elasticsearch clusters in a Kubernetes environment.
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586package server
import ( "log/slog" "net/http"
"level3.git.onstackit.cloud/LEVEL3/gabriel/src/api" "level3.git.onstackit.cloud/LEVEL3/gabriel/src/auth")
func (s *Server) LoginUser(w http.ResponseWriter, r *http.Request) { slog.Debug("LoginUser endpoint called") req, err := reqBody[api.AuthRequest](r.Body) if err != nil { slog.Debug("Failed to parse login request body", "error", err) http.Error(w, err.Error(), http.StatusBadRequest) return }
user, err := auth.Login(auth.UserData{ Username: req.Username, Password: req.Password, }) if err != nil { switch err { case auth.ErrUserNotFound, auth.ErrInvalidPassword: slog.Debug("Invalid username or password", "username", req.Username) writeJSONResponse(w, http.StatusUnauthorized, map[string]string{"error": "invalid username or password"}) default: slog.Error("Failed to login user", "username", req.Username, "error", err) writeJSONResponse(w, http.StatusInternalServerError, map[string]string{"error": "internal server error"}) } return }
slog.Debug("User login successful", "username", req.Username) writeJSONResponse(w, http.StatusOK, api.AuthResponse{ Token: user.Token, Role: api.Default, })}
func (s *Server) RegisterUser(w http.ResponseWriter, r *http.Request) { slog.Debug("RegisterUser endpoint called") req, err := reqBody[api.AuthRequest](r.Body) if err != nil { slog.Debug("Failed to parse registration request body", "error", err) http.Error(w, err.Error(), http.StatusBadRequest) return }
if s.inviteCode != "" { if req.InviteCode == nil || *req.InviteCode != s.inviteCode { slog.Debug("Invalid invite code", "username", req.Username) writeJSONResponse(w, http.StatusForbidden, map[string]string{"error": "invalid invite code"}) return } }
if err := auth.Register(auth.UserData{ Username: req.Username, Password: req.Password, }); err != nil { slog.Error("Failed to register user", "username", req.Username, "error", err) writeJSONResponse(w, http.StatusInternalServerError, map[string]string{"error": "failed to register user"}) return }
slog.Debug("User registered successfully", "username", req.Username) user, err := auth.Login(auth.UserData{ Username: req.Username, Password: req.Password, }) if err != nil { slog.Error("Failed to login user after registration", "username", req.Username, "error", err) writeJSONResponse(w, http.StatusInternalServerError, map[string]string{"error": "failed to login after registration"}) return }
slog.Debug("User login successful after registration", "username", req.Username) writeJSONResponse(w, http.StatusCreated, api.AuthResponse{ Token: user.Token, Role: api.Default, })}