bridge_cache 0.0.17 → 0.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4ae83a5c6d7675f766238a2a64395df41e16810
4
- data.tar.gz: e0921eea8916eadbfe3150efa77cae175e4a7374
3
+ metadata.gz: fe9f7dc02c99dcbe3627edab365cc1ab83005b40
4
+ data.tar.gz: 308aafc1de90150dd79aa399b7e11b004aaf3549
5
5
  SHA512:
6
- metadata.gz: 7caddb7e60093a2ac2689b1db92a30c01f15e12b2d50150405b857e0a939edf4a5ac3aa3c90e14e57e8463a47ef2ddfa0bf6626a2d2af4ca10e92368cc412e42
7
- data.tar.gz: 0514e9eea0548b3fd5d2af2d41b1c349f8a534fb262fa65adf765e5e2383e78867021bb9e625eb8b304a0a9d602da7abe65f9ed64512bfb6e1d99863211041f2
6
+ metadata.gz: fdf68035835816b605413d587a670420f89edf9175d7c3530db430363933fcb52f579926e97746bf4551967d22ed682c79ba9c7d4d6a276770db145603fda2b1
7
+ data.tar.gz: 622fb7aacbfb6c249f9ee16a1285570c5d4714fbd152b5cad29317cd85838ec16beaff1f06725b1688a876309eb301dc89ecfcbe7aa584184e30ed976d1b80f6
@@ -12,5 +12,27 @@ module BridgeCache::Data
12
12
  # Implement this method in your model if you want to do any sort of post creation cleanup.
13
13
  # See tagging.rb for an example.
14
14
  end
15
+
16
+ def webhook_updated(message)
17
+ create_or_update_from_webhook(message)
18
+ end
19
+
20
+ def webhook_created(message)
21
+ create_or_update_from_webhook(message)
22
+ end
23
+
24
+ def webhook_deleted(message)
25
+ message.payload_class.where(bridge_id: message.resource_object['id']).destroy_all
26
+ end
27
+
28
+ def webhook_completed(message)
29
+ raise "Method not implemented"
30
+ end
31
+
32
+ private
33
+
34
+ def create_or_update_from_webhook(message)
35
+ message.payload_class.create_from_csv_row(message.resource_object)
36
+ end
15
37
  end
16
38
  end
@@ -0,0 +1,18 @@
1
+ module BridgeCache::Webhooks
2
+ class Message
3
+
4
+ attr_reader :payload
5
+
6
+ def initialize(payload)
7
+ @payload = payload
8
+ end
9
+
10
+ def resource_object
11
+ @payload[@payload['resource']]
12
+ end
13
+
14
+ def payload_class
15
+ "BridgeCache::#{@payload['resource'].camelcase}".constantize
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ module BridgeCache::Webhooks
2
+ class Request
3
+ def initialize(payload)
4
+ @payload = payload
5
+ end
6
+
7
+ def process
8
+ message = BridgeCache::Webhooks::Message.new(@payload)
9
+ message.payload_class.public_send("webhook_#{@payload['trigger']}".to_sym, message)
10
+ end
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module BridgeCache
2
- VERSION = "0.0.17"
2
+ VERSION = "0.0.18"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bridge_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.17
4
+ version: 0.0.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - jshaffer
@@ -201,6 +201,8 @@ files:
201
201
  - app/lib/bridge_cache/plugins/csv_dump.rb
202
202
  - app/lib/bridge_cache/plugins/data_transform.rb
203
203
  - app/lib/bridge_cache/utils/worker_helper.rb
204
+ - app/lib/bridge_cache/webhooks/message.rb
205
+ - app/lib/bridge_cache/webhooks/request.rb
204
206
  - app/models/bridge_cache/affiliated_sub_account.rb
205
207
  - app/models/bridge_cache/application_record.rb
206
208
  - app/models/bridge_cache/course_template.rb
@@ -262,7 +264,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
262
264
  version: '0'
263
265
  requirements: []
264
266
  rubyforge_project:
265
- rubygems_version: 2.6.13
267
+ rubygems_version: 2.6.11
266
268
  signing_key:
267
269
  specification_version: 4
268
270
  summary: A mountable engine for bridge data storage