Class: Checkoff::Internal::AsanaEventEnrichment
- Inherits:
-
Object
- Object
- Checkoff::Internal::AsanaEventEnrichment
- Includes:
- Logging
- Defined in:
- lib/checkoff/internal/asana_event_enrichment.rb
Overview
Add useful info (like resource task names) into an Asana event/event filters/webhook subscription for human consumption
Instance Method Summary collapse
-
#enrich_event(asana_event) ⇒ Hash
Add useful info (like resource task names) into an event for human consumption.
- #enrich_filter(filter) ⇒ Hash{String => String, Array<String>}
- #enrich_webhook_subscription!(webhook_subscription) ⇒ void
-
#initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), workspaces: Checkoff::Workspaces.new(config:), tasks: Checkoff::Tasks.new(config:), sections: Checkoff::Sections.new(config:), projects: Checkoff::Projects.new(config:), resources: Checkoff::Resources.new(config:), clients: Checkoff::Clients.new(config:), client: clients.client) ⇒ AsanaEventEnrichment
constructor
A new instance of AsanaEventEnrichment.
Methods included from Logging
#debug, #error, #finer, #info, #logger, #warn
Constructor Details
#initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), workspaces: Checkoff::Workspaces.new(config:), tasks: Checkoff::Tasks.new(config:), sections: Checkoff::Sections.new(config:), projects: Checkoff::Projects.new(config:), resources: Checkoff::Resources.new(config:), clients: Checkoff::Clients.new(config:), client: clients.client) ⇒ AsanaEventEnrichment
Returns a new instance of AsanaEventEnrichment.
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/checkoff/internal/asana_event_enrichment.rb', line 25 def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), workspaces: Checkoff::Workspaces.new(config:), tasks: Checkoff::Tasks.new(config:), sections: Checkoff::Sections.new(config:), projects: Checkoff::Projects.new(config:), resources: Checkoff::Resources.new(config:), clients: Checkoff::Clients.new(config:), client: clients.client) @workspaces = workspaces @tasks = tasks @sections = sections @projects = projects @resources = resources @client = client end |
Instance Method Details
#enrich_event(asana_event) ⇒ Hash
Add useful info (like resource task names) into an event for human consumption
47 48 49 50 51 52 53 |
# File 'lib/checkoff/internal/asana_event_enrichment.rb', line 47 def enrich_event(asana_event) finer { "Enriching event: #{asana_event}" } asana_event = asana_event.dup enrich_event_resource!(asana_event) enrich_event_parent!(asana_event) asana_event end |
#enrich_filter(filter) ⇒ Hash{String => String, Array<String>}
58 59 60 61 62 63 64 |
# File 'lib/checkoff/internal/asana_event_enrichment.rb', line 58 def enrich_filter(filter) filter = filter.dup enrich_filter_section!(filter) enrich_filter_resource!(filter) enrich_filter_parent_gid!(filter) filter end |
#enrich_webhook_subscription!(webhook_subscription) ⇒ void
This method returns an undefined value.
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/checkoff/internal/asana_event_enrichment.rb', line 71 def enrich_webhook_subscription!(webhook_subscription) webhook_subscription&.fetch('filters', nil)&.map! do |filter| enrich_filter(filter) end resource = webhook_subscription&.fetch('resource', nil) # @sg-ignore name, resource_type = enrich_gid(resource) if resource webhook_subscription['checkoff:enriched:name'] = name if name webhook_subscription['checkoff:enriched:resource_type'] = resource_type if resource_type end |