Sha256: f0c2a41715291a680d5b7ece0decd3ec693e25e7fa602f563bf0ba485327e123

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

module Approval
  module ActsAsUser
    extend ActiveSupport::Concern

    included do
      has_many :approval_requests, class_name: :"Approval::Request", foreign_key: :request_user_id
      has_many :approval_comments, class_name: :"Approval::Comment", foreign_key: :user_id
    end

    def request_for_create(records, reason:)
      Approval::RequestForm::Create.new(user: self, reason: reason, records: records)
    end

    def request_for_update(records, reason:)
      Approval::RequestForm::Update.new(user: self, reason: reason, records: records)
    end

    def request_for_destroy(records, reason:)
      Approval::RequestForm::Destroy.new(user: self, reason: reason, records: records)
    end

    def cancel_request(request, reason:)
      Approval::RespondForm::Cancel.new(user: self, reason: reason, request: request)
    end

    def approve_request(request, reason:)
      Approval::RespondForm::Approve.new(user: self, reason: reason, request: request)
    end

    def reject_request(request, reason:)
      Approval::RespondForm::Reject.new(user: self, reason: reason, request: request)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
approval-0.3.7 app/models/concerns/approval/acts_as_user.rb