package handlers import ( "net/http" "cmr-backend/internal/apperr" "cmr-backend/internal/httpapi/middleware" "cmr-backend/internal/httpx" "cmr-backend/internal/service" ) type ProfileHandler struct { profileService *service.ProfileService } func NewProfileHandler(profileService *service.ProfileService) *ProfileHandler { return &ProfileHandler{profileService: profileService} } func (h *ProfileHandler) Get(w http.ResponseWriter, r *http.Request) { auth := middleware.GetAuthContext(r.Context()) if auth == nil { httpx.WriteError(w, apperr.New(http.StatusUnauthorized, "unauthorized", "missing auth context")) return } result, err := h.profileService.GetProfile(r.Context(), auth.UserID) if err != nil { httpx.WriteError(w, err) return } httpx.WriteJSON(w, http.StatusOK, map[string]any{"data": result}) }