Refactor frontend components and enhance API integration
- Updated frontend-nuxt.mdc to specify usage of composables for API calls. - Added new AuthCard and ConfirmModal components for improved UI consistency. - Introduced UserAvatar component for user profile display, replacing previous Gravatar implementation. - Implemented useFormSubmit composable for handling form submissions with loading and error states. - Enhanced vitest.config.ts to include coverage reporting for composables and components. - Removed deprecated useAdminApi and useAuth composables to streamline API interactions. - Updated login and setup pages to utilize new components and composables for better user experience.
This commit is contained in:
@@ -24,7 +24,7 @@ func (h *Handlers) ClientRouter(rw http.ResponseWriter, req *http.Request) {
|
||||
ctx := req.Context()
|
||||
username, err := h.Auth.ValidateClientToken(ctx, matches[1])
|
||||
if err != nil {
|
||||
rw.WriteHeader(http.StatusUnauthorized)
|
||||
HandleServiceError(rw, err)
|
||||
return
|
||||
}
|
||||
ctx = context.WithValue(ctx, app.ClientUsernameKey, username)
|
||||
@@ -47,10 +47,10 @@ func (h *Handlers) ClientRouter(rw http.ResponseWriter, req *http.Request) {
|
||||
if req.FormValue("version") == app.ClientVersion {
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
} else {
|
||||
rw.WriteHeader(http.StatusBadRequest)
|
||||
JSONError(rw, http.StatusBadRequest, "version mismatch", "BAD_REQUEST")
|
||||
}
|
||||
default:
|
||||
rw.WriteHeader(http.StatusNotFound)
|
||||
JSONError(rw, http.StatusNotFound, "not found", "NOT_FOUND")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,9 +58,11 @@ func (h *Handlers) clientLocate(rw http.ResponseWriter, req *http.Request) {
|
||||
gridID := req.FormValue("gridID")
|
||||
result, err := h.Client.Locate(req.Context(), gridID)
|
||||
if err != nil {
|
||||
rw.WriteHeader(http.StatusNotFound)
|
||||
HandleServiceError(rw, err)
|
||||
return
|
||||
}
|
||||
rw.Header().Set("Content-Type", "text/plain")
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
rw.Write([]byte(result))
|
||||
}
|
||||
|
||||
@@ -75,8 +77,11 @@ func (h *Handlers) clientGridUpdate(rw http.ResponseWriter, req *http.Request) {
|
||||
result, err := h.Client.ProcessGridUpdate(req.Context(), grup)
|
||||
if err != nil {
|
||||
slog.Error("grid update failed", "error", err)
|
||||
HandleServiceError(rw, err)
|
||||
return
|
||||
}
|
||||
rw.Header().Set("Content-Type", "application/json")
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
json.NewEncoder(rw).Encode(result.Response)
|
||||
}
|
||||
|
||||
@@ -87,6 +92,7 @@ func (h *Handlers) clientGridUpload(rw http.ResponseWriter, req *http.Request) {
|
||||
}
|
||||
if err := req.ParseMultipartForm(app.MultipartMaxMemory); err != nil {
|
||||
slog.Error("multipart parse error", "error", err)
|
||||
JSONError(rw, http.StatusBadRequest, "invalid multipart", "BAD_REQUEST")
|
||||
return
|
||||
}
|
||||
id := req.FormValue("id")
|
||||
@@ -94,11 +100,13 @@ func (h *Handlers) clientGridUpload(rw http.ResponseWriter, req *http.Request) {
|
||||
file, _, err := req.FormFile("file")
|
||||
if err != nil {
|
||||
slog.Error("form file error", "error", err)
|
||||
JSONError(rw, http.StatusBadRequest, "missing file", "BAD_REQUEST")
|
||||
return
|
||||
}
|
||||
defer file.Close()
|
||||
if err := h.Client.ProcessGridUpload(req.Context(), id, extraData, file); err != nil {
|
||||
slog.Error("grid upload failed", "error", err)
|
||||
HandleServiceError(rw, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,10 +115,12 @@ func (h *Handlers) clientPositionUpdate(rw http.ResponseWriter, req *http.Reques
|
||||
buf, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
slog.Error("error reading position update", "error", err)
|
||||
JSONError(rw, http.StatusBadRequest, "failed to read body", "BAD_REQUEST")
|
||||
return
|
||||
}
|
||||
if err := h.Client.UpdatePositions(req.Context(), buf); err != nil {
|
||||
slog.Error("position update failed", "error", err)
|
||||
HandleServiceError(rw, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -119,9 +129,11 @@ func (h *Handlers) clientMarkerUpdate(rw http.ResponseWriter, req *http.Request)
|
||||
buf, err := io.ReadAll(req.Body)
|
||||
if err != nil {
|
||||
slog.Error("error reading marker update", "error", err)
|
||||
JSONError(rw, http.StatusBadRequest, "failed to read body", "BAD_REQUEST")
|
||||
return
|
||||
}
|
||||
if err := h.Client.UploadMarkers(req.Context(), buf); err != nil {
|
||||
slog.Error("marker update failed", "error", err)
|
||||
HandleServiceError(rw, err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user