package app import ( "database/sql" "errors" "net/http" ) var errHttpNotFound = errors.New("not found") var errBadRequest = errors.New("bad request") var errInternalError = errors.New("internal server error") var errAuthError = errors.New("unauthorized") var errLodestoneError = errors.New("lodestone character fetch failed") var errCharacterClaimed = errors.New("character is already claimed") var errFormInvalid = errors.New("invalid form submission") var httpStatusCodes = map[error]int{ errHttpNotFound: int(http.StatusNotFound), errBadRequest: int(http.StatusBadRequest), errAuthError: int(http.StatusUnauthorized), sql.ErrNoRows: int(http.StatusNotFound), } func getErrorHttpStatusCode(err error) int { statusCode := httpStatusCodes[err] if statusCode == 0 { return int(http.StatusInternalServerError) } return statusCode } func getErrorHttpMessage(err error) string { if httpStatusCodes[err] != 0 { return err.Error() } return errInternalError.Error() }