bridge_cache 0.0.17 → 0.0.18

Sign up to get free protection for your applications and to get access to all the features.
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