deferred_request 0.0.1 → 1.0.0

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
  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