Exception: BetterService::Errors::Runtime::DatabaseError

Inherits:
RuntimeError show all
Defined in:
lib/better_service/errors/runtime/database_error.rb

Overview

Raised when a database operation fails

This error wraps ActiveRecord database errors such as RecordInvalid, RecordNotSaved, constraint violations, and other database-level failures.

Examples:

Record validation fails

class UserCreateService < BetterService::Services::CreateService
  model_class User

  schema do
    required(:email).filled(:string)
  end
end

UserCreateService.new(user, params: { email: "invalid" }).call
# => raises DatabaseError wrapping ActiveRecord::RecordInvalid

Constraint violation

class MyService < BetterService::Services::Base
  schema { required(:user_id).filled(:integer) }

  process_with do |data|
    User.create!(email: "[email protected]")  # Unique constraint fails
  end
end

MyService.new(user, params: { user_id: 1 }).call
# => raises DatabaseError

Instance Attribute Summary

Attributes inherited from BetterServiceError

#code, #context, #original_error, #timestamp

Instance Method Summary collapse

Methods inherited from BetterServiceError

#backtrace, #detailed_message, #inspect, #to_h

Constructor Details

#initialize(message = "Database error", code: :database_error, context: {}, original_error: nil) ⇒ DatabaseError



35
36
37
# File 'lib/better_service/errors/runtime/database_error.rb', line 35

def initialize(message = "Database error", code: :database_error, context: {}, original_error: nil)
  super(message, code: code, context: context, original_error: original_error)
end