package auth import ( "encoding/json" "net/http" ) func (s *Service) RegisterRoutes(mux *http.ServeMux) { mux.HandleFunc("/api/v1/auth/google", s.handleGoogleLogin) } func (s *Service) handleGoogleLogin(w http.ResponseWriter, r *http.Request) { if r.Method != http.MethodPost { writeError(w, "method not allowed", http.StatusMethodNotAllowed) return } var req GoogleLoginRequest if err := json.NewDecoder(r.Body).Decode(&req); err != nil { writeError(w, "invalid request", http.StatusBadRequest) return } resp, err := s.HandleGoogleLogin(r.Context(), req) if err != nil { writeError(w, err.Error(), http.StatusUnauthorized) return } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(resp) } func writeError(w http.ResponseWriter, message string, code int) { w.Header().Set("Content-Type", "application/json") w.WriteHeader(code) json.NewEncoder(w).Encode(map[string]string{"error": message}) }