Class: Vert::Concerns::Current
- Inherits:
-
ActiveSupport::CurrentAttributes
- Object
- ActiveSupport::CurrentAttributes
- Vert::Concerns::Current
- Defined in:
- lib/vert/concerns/current_attributes.rb
Overview
CurrentAttributes - Thread-safe request context
Class Method Summary collapse
- .company_set? ⇒ Boolean
- .deserialize(hash) ⇒ Object
- .require_company! ⇒ Object
- .require_tenant! ⇒ Object
- .reset_all ⇒ Object
- .serialize ⇒ Object
- .set_context(tenant_id:, user_id: nil, company_id: nil, request_id: nil) ⇒ Object
- .tenant_set? ⇒ Boolean
Class Method Details
.company_set? ⇒ Boolean
38 39 40 |
# File 'lib/vert/concerns/current_attributes.rb', line 38 def self.company_set? company_id.present? end |
.deserialize(hash) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/vert/concerns/current_attributes.rb', line 24 def self.deserialize(hash) return unless hash.is_a?(Hash) set_context( tenant_id: hash[:tenant_id] || hash["tenant_id"], user_id: hash[:user_id] || hash["user_id"], company_id: hash[:company_id] || hash["company_id"], request_id: hash[:request_id] || hash["request_id"] ) end |
.require_company! ⇒ Object
46 47 48 |
# File 'lib/vert/concerns/current_attributes.rb', line 46 def self.require_company! raise Vert::CompanyNotSetError, "Company context not set" unless company_set? end |
.require_tenant! ⇒ Object
42 43 44 |
# File 'lib/vert/concerns/current_attributes.rb', line 42 def self.require_tenant! raise Vert::TenantNotSetError, "Tenant context not set" unless tenant_set? end |
.reset_all ⇒ Object
9 10 11 |
# File 'lib/vert/concerns/current_attributes.rb', line 9 def self.reset_all reset end |
.serialize ⇒ Object
20 21 22 |
# File 'lib/vert/concerns/current_attributes.rb', line 20 def self.serialize { tenant_id: tenant_id, user_id: user_id, company_id: company_id, request_id: request_id } end |
.set_context(tenant_id:, user_id: nil, company_id: nil, request_id: nil) ⇒ Object
13 14 15 16 17 18 |
# File 'lib/vert/concerns/current_attributes.rb', line 13 def self.set_context(tenant_id:, user_id: nil, company_id: nil, request_id: nil) self.tenant_id = tenant_id self.user_id = user_id self.company_id = company_id self.request_id = request_id || SecureRandom.uuid end |
.tenant_set? ⇒ Boolean
34 35 36 |
# File 'lib/vert/concerns/current_attributes.rb', line 34 def self.tenant_set? tenant_id.present? end |