Class: DB::DBAttempt

Inherits:
Object
  • Object
show all
Defined in:
backend/app/model/db.rb

Instance Method Summary (collapse)

Constructor Details

- (DBAttempt) initialize(happy_path)

Returns a new instance of DBAttempt



194
195
196
# File 'backend/app/model/db.rb', line 194

def initialize(happy_path)
  @happy_path = happy_path
end

Instance Method Details

- (Object) and_if_constraint_fails(&failed_path)



199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
# File 'backend/app/model/db.rb', line 199

def and_if_constraint_fails(&failed_path)
  begin
    DB.transaction(:savepoint => DB.needs_savepoint?) do
      @happy_path.call
    end
  rescue Sequel::DatabaseError => ex
    if DB.is_integrity_violation(ex)
      failed_path.call(ex)
    else
      raise ex
    end
  rescue Sequel::ValidationFailed => ex
    failed_path.call(ex)
  end
end