class Backframe::Service

Public Class Methods

build(*args) click to toggle source
# File lib/backframe/service.rb, line 9
def build(*args)
  new(*args)
end
perform(*args) click to toggle source
# File lib/backframe/service.rb, line 13
def perform(*args)
  service = build(*args)

  message = nil
  errors = {}
  result = nil

  ActiveRecord::Base.transaction do
    begin
      result = service.perform
    rescue StandardError => e
      message = e.message
      # errors = e.errors
      service.before_rollback
      raise ActiveRecord::Rollback
    end
    service.before_commit
  end

  if message.nil?
    service.after_commit
  else
    service.after_rollback
  end

  return (message.present?) ? Result::Failure.new(message: message, errors: errors) : Result::Success.new(result)
end

Public Instance Methods

after_commit() click to toggle source
# File lib/backframe/service.rb, line 55
def after_commit
end
after_rollback() click to toggle source
# File lib/backframe/service.rb, line 49
def after_rollback
end
before_commit() click to toggle source
# File lib/backframe/service.rb, line 52
def before_commit
end
before_rollback() click to toggle source
# File lib/backframe/service.rb, line 46
def before_rollback
end
perform() click to toggle source
# File lib/backframe/service.rb, line 43
def perform
end