deferred_request 0.0.1 → 1.0.0

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
  SHA256:
3
- metadata.gz: 8a9e96cf574be720de97ae91ae7f06d09b082d56ffc2aef3eae449653dbce7b9
4
- data.tar.gz: f604991997404bf38fad4cae5fd40b5b00088d952f0f3d15bd1a64b4f9d4a078
3
+ metadata.gz: dd9cbe479d0ec2429ded46aacbdd786b3ba69b19dcbc32609ca7875bb51b97a5
4
+ data.tar.gz: fbdb8dee9068fb03bc4e5b6385968be177ad8b6e0d15149304d5876b0ec20bdc
5
5
  SHA512:
6
- metadata.gz: ffa3d29e8e24b1c6dc48200cb6463f4facef2ded394cd820b0a5083dee8948f779b2f0e439779a8276a786dffbfc6790b20679a98d1481861a2b8bd9410677a3
7
- data.tar.gz: 5bffe0fe31acd967710261f6a23925ccf48db5b9e1b573df520eec7d6d42c97df13cf92ac1d7853007d945fd3ac4ae2fb2ecee0cff8bef62eaf70dc380d08673
6
+ metadata.gz: db92fd506d4170270ba261ca9c3909809fd3b411b36b6141d7f207840e60abcb72fb2862b934de4c5ea72e8d7ac99453e6fe97f5e0766b95ca48435d551f9b5d
7
+ data.tar.gz: 0bd4f541e34984dd95f19942577e5a968c8f9b2fadf8bcf6151982fa8aea970259bf41264279aa47eb9d67abe457444973881b7a22f94652016349976ed5feb4
data/README.md CHANGED
@@ -45,7 +45,7 @@ def status_callback
45
45
  head :ok
46
46
 
47
47
  # Then queue the request to run later
48
- deferred_request = DeferredRequest::DeferredRequest.from_request(request, params)
48
+ deferred_request = DeferredRequest::DeferredRequest.from_request(request)
49
49
  deferred_request.save!
50
50
 
51
51
  deferred_request.peform_later
@@ -1,7 +1,7 @@
1
1
  module DeferredRequest
2
2
  class DeferredRequest < ApplicationRecord
3
- serialize :routing, JSON, default: {}
4
- serialize :request, JSON, default: {}
3
+ serialize :routing, JSON
4
+ serialize :request, JSON
5
5
 
6
6
  store_accessor :routing, "controller", "action"
7
7
  store_accessor :request, "url", "method", "headers", "params", "remote_ip"
@@ -13,10 +13,9 @@ module DeferredRequest
13
13
  def self.from_request(request)
14
14
  deferred_request = DeferredRequest.new
15
15
 
16
- debugger
17
16
  deferred_request.controller = request.controller_class
18
17
  deferred_request.action = request.params["action"]
19
-
18
+
20
19
  deferred_request.url = request.url
21
20
  deferred_request.method = request.method
22
21
  deferred_request.headers = get_headers(request)
@@ -26,37 +25,42 @@ module DeferredRequest
26
25
  deferred_request
27
26
  end
28
27
 
28
+ def self.perform_later_from_request!(request)
29
+ deferred_request = DeferredRequest.from_request(request)
30
+ deferred_request.save!
31
+
32
+ deferred_request.perform_later
33
+ end
34
+
29
35
  def perform_later
30
- DeferredRequestJob.perform_later(self.id)
36
+ DeferredRequestJob.perform_later(id)
31
37
  end
32
38
 
33
39
  def perform!
34
40
  begin
35
41
  self.status = :processing
36
- self.save!
42
+ save!
37
43
 
38
- klass = self.controller.constantize.new
44
+ klass = controller.constantize.new
39
45
 
40
- self.result = klass.try("#{self.action}_deferred".to_sym, self)
46
+ self.result = klass.try("#{action}_deferred".to_sym, self)
41
47
  self.status = :complete
42
48
  rescue => e
43
49
  Rails.logger.error("DeferredRequest::DeferredRequestJob: #{e.message}")
44
50
  self.result = e.message
45
51
  self.status = :error
46
52
  end
47
-
48
- self.save!
49
- end
50
53
 
51
- private
54
+ save!
55
+ end
52
56
 
53
- def self.get_headers(request)
54
- # Get the request headers from the request
55
- {}.tap do |t|
56
- request.headers.each do |key, value|
57
- t[key] = value if key.downcase.starts_with?("http")
58
- end
57
+ def self.get_headers(request)
58
+ # Get the request headers from the request
59
+ {}.tap do |t|
60
+ request.headers.each do |key, value|
61
+ t[key] = value if key.downcase.starts_with?("http")
59
62
  end
60
63
  end
64
+ end
61
65
  end
62
66
  end
data/config/routes.rb CHANGED
@@ -1,3 +1,2 @@
1
1
  DeferredRequest::Engine.routes.draw do
2
- post 'status_callback' => 'deferred_request/test#status_callback'
3
2
  end
@@ -1,3 +1,3 @@
1
1
  module DeferredRequest
2
- VERSION = "0.0.1"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -3,4 +3,6 @@ require "deferred_request/engine"
3
3
 
4
4
  module DeferredRequest
5
5
  # Your code goes here...
6
+ mattr_accessor :model_parent_class
7
+ @@model_parent_class = "ActiveRecord::Base"
6
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deferred_request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Austin Miller
@@ -14,16 +14,30 @@ dependencies:
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.1'
19
+ version: 6.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '6.1'
26
+ version: 6.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: standardrb
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description: A simple library to defer http requests until you can actually process
28
42
  them. (Think webhooks. Stripe webhooks, Twilio status callbacks, ect.)
29
43
  email:
@@ -38,9 +52,7 @@ files:
38
52
  - app/assets/config/deferred_request_manifest.js
39
53
  - app/assets/stylesheets/deferred_request/application.css
40
54
  - app/controllers/deferred_request/application_controller.rb
41
- - app/controllers/deferred_request/test_controller.rb
42
55
  - app/helpers/deferred_request/application_helper.rb
43
- - app/helpers/deferred_request/test_helper.rb
44
56
  - app/jobs/deferred_request/application_job.rb
45
57
  - app/jobs/deferred_request/deferred_request_job.rb
46
58
  - app/mailers/deferred_request/application_mailer.rb
@@ -75,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
87
  - !ruby/object:Gem::Version
76
88
  version: '0'
77
89
  requirements: []
78
- rubygems_version: 3.2.15
90
+ rubygems_version: 3.2.3
79
91
  signing_key:
80
92
  specification_version: 4
81
93
  summary: Deferred Request
@@ -1,26 +0,0 @@
1
- module DeferredRequest
2
- class TestController < ApplicationController
3
- skip_before_action :verify_authenticity_token
4
-
5
- def status_callback
6
- # We can go ahead and give a :ok response (fast and snappy)
7
- head :ok
8
-
9
- # Then queue the request to run later
10
- deferred_request = DeferredRequest::DeferredRequest.from_request(request, params)
11
- deferred_request.save!
12
-
13
- deferred_request.peform_later
14
- end
15
-
16
- def status_callback_deferred(deferred_request)
17
- # do some actual processing
18
- if deferred_request.params["SmsStatus"] == "delivered"
19
- # mark message as delivered
20
- end
21
-
22
- # return a status and it will be saved to the database
23
- true
24
- end
25
- end
26
- end
@@ -1,4 +0,0 @@
1
- module DeferredRequest
2
- module TestHelper
3
- end
4
- end