Module: Shamu::Auditing::Support
- Extended by:
- ActiveSupport::Concern
- Includes:
- Services::RequestSupport
- Defined in:
- lib/shamu/auditing/support.rb
Overview
Add auditing support to a Services::Servie.
Dependencies collapse
-
#auditing_service ⇒ Shamu::Auditing::AuditingService
The service to report audit transactions to.
Instance Method Summary collapse
-
#audit_request(params, request_class, action: :smart) {|request, transaction| ... } ⇒ Result
Audit the requested changes and report the request to the #auditing_service.
Methods included from Services::RequestSupport
#request_class, request_class, #request_for, #with_partial_request, #with_request
Instance Attribute Details
#auditing_service ⇒ Shamu::Auditing::AuditingService
Returns the service to report audit transactions to.
18 |
# File 'lib/shamu/auditing/support.rb', line 18 attr_dependency :auditing_service, Shamu::Auditing::AuditingService |
Instance Method Details
#audit_request(params, request_class, action: :smart) {|request, transaction| ... } ⇒ Result
Audit the requested changes and report the request to the #auditing_service.
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/shamu/auditing/support.rb', line 42 def audit_request( params, request_class, action: :smart, &block ) transaction = Transaction.new \ user_id_chain: auditing_security_principal.user_id_chain result = with_request params, request_class do |request| transaction.action = audit_request_action( request, action ) transaction.changes = request.to_attributes yield request, transaction end if result.valid? transaction.append_entity result.entity if result.entity auditing_service.commit( transaction ) end result end |