package handler import ( "errors" "net/http" "spend-sparrow/db" "spend-sparrow/service" "spend-sparrow/utils" "strings" ) func handleError(w http.ResponseWriter, r *http.Request, err error) { switch { case errors.Is(err, service.ErrUnauthorized): utils.TriggerToastWithStatus(w, r, "error", "You are not autorized to perform this operation.", http.StatusUnauthorized) return case errors.Is(err, service.ErrBadRequest): utils.TriggerToastWithStatus(w, r, "error", extractErrorMessage(err), http.StatusBadRequest) return case errors.Is(err, db.ErrNotFound): utils.TriggerToastWithStatus(w, r, "error", extractErrorMessage(err), http.StatusNotFound) return } utils.TriggerToastWithStatus(w, r, "error", "Internal Server Error", http.StatusInternalServerError) } func extractErrorMessage(err error) string { errMsg := err.Error() if errMsg == "" { return "" } return strings.SplitN(errMsg, ":", 2)[0] }