Class: Webhookdb::Jobs::ModelEventSystemLogTracker
- Inherits:
-
Object
- Object
- Webhookdb::Jobs::ModelEventSystemLogTracker
- Extended by:
- Async::Job
- Defined in:
- lib/webhookdb/jobs/model_event_system_log_tracker.rb
Instance Method Summary collapse
- #_perform(event) ⇒ Object
- #alert_customer_created(event) ⇒ Object
- #alert_org_created(event) ⇒ Object
- #alert_sint_created(event) ⇒ Object
- #alert_sint_destroyed(event) ⇒ Object
- #create_event(title, body, link) ⇒ Object
Methods included from Async::Job
Instance Method Details
#_perform(event) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/webhookdb/jobs/model_event_system_log_tracker.rb', line 11 def _perform(event) case event.name when "webhookdb.customer.created" self.alert_customer_created(event) when "webhookdb.organization.created" self.alert_org_created(event) when "webhookdb.serviceintegration.created" self.alert_sint_created(event) when "webhookdb.serviceintegration.destroyed" self.alert_sint_destroyed(event) end end |
#alert_customer_created(event) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/webhookdb/jobs/model_event_system_log_tracker.rb', line 33 def alert_customer_created(event) customer = self.lookup_model(Webhookdb::Customer, event) Webhookdb::DeveloperAlert.new( subsystem: "Customer Created", emoji: ":hook:", fallback: "New customer created: #{customer.inspect}", fields: [ {title: "Id", value: customer.id, short: true}, {title: "Email", value: customer.email, short: true}, {title: "Link", value: customer.admin_link}, ], ).emit create_event("Customer Created", customer.email, customer.admin_link) end |
#alert_org_created(event) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/webhookdb/jobs/model_event_system_log_tracker.rb', line 48 def alert_org_created(event) org = self.lookup_model(Webhookdb::Organization, event) Webhookdb::DeveloperAlert.new( subsystem: "Organization Created", emoji: ":office:", fallback: "Organization created: #{org.inspect}", fields: [ {title: "Id", value: org.id, short: true}, {title: "Email", value: org.name, short: true}, {title: "Link", value: org.admin_link}, ], ).emit create_event("Organization Created", "#{org.name} (#{org.key})", org.admin_link) end |
#alert_sint_created(event) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/webhookdb/jobs/model_event_system_log_tracker.rb', line 63 def alert_sint_created(event) sint = self.lookup_model(Webhookdb::ServiceIntegration, event) Webhookdb::DeveloperAlert.new( subsystem: "Integration Created", emoji: ":fax:", fallback: "Service Integration #{sint.service_name} (#{sint.opaque_id}) created", fields: [ {title: "Id", value: sint.opaque_id, short: true}, {title: "Service", value: sint.service_name, short: true}, {title: "Table", value: sint.table_name, short: true}, {title: "Org Name", value: sint.organization.name, short: true}, {title: "Link", value: sint.admin_link}, ], ).emit create_event( "Integration Created", "#{sint.service_name} (#{sint.opaque_id}) created in #{sint.organization.name}", sint.admin_link, ) end |
#alert_sint_destroyed(event) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/webhookdb/jobs/model_event_system_log_tracker.rb', line 84 def alert_sint_destroyed(event) pl = event.payload[1].symbolize_keys org = Webhookdb::Organization[pl[:organization_id]] Webhookdb::DeveloperAlert.new( subsystem: "Integration Deleted", emoji: ":funeral_urn:", fallback: "Service Integration #{pl[:service_name]} (#{pl[:opaque_id]}) deleted", fields: [ {title: "Id", value: pl[:opaque_id], short: true}, {title: "Service", value: pl[:service_name], short: true}, {title: "Table", value: pl[:table_name], short: true}, {title: "Org Name", value: org.name, short: true}, {title: "Link", value: org.admin_link}, ], ).emit create_event( "Integration Deleted", "#{pl[:service_name]} (#{pl[:opaque_id]}) deleted from #{org.name}", org.admin_link, ) end |
#create_event(title, body, link) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/webhookdb/jobs/model_event_system_log_tracker.rb', line 24 def create_event(title, body, link) Webhookdb::SystemLogEvent.create( at: Time.now, title:, body:, link:, ) end |