package protected_api import ( "encoding/json" "net/http" "git.coopgo.io/coopgo-platform/mobility-accounts/storage" "github.com/rs/zerolog/log" ) func (h *Handler) UsersHTTPHandler() http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if r.Method != "POST" { w.WriteHeader(http.StatusMethodNotAllowed) return } var user storage.Account decoder := json.NewDecoder(r.Body) err := decoder.Decode(&user) if err != nil { log.Error().Err(err).Msg("could not read account input") w.WriteHeader(http.StatusBadRequest) return } result, err := h.applicationHandler.RegisterUser(r.Context(), user) if err != nil { log.Error().Err(err).Msg("error registering user") w.WriteHeader(http.StatusInternalServerError) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(map[string]string{ "user_id": result.UserID, }) } }