zapier_ruby 1.0.0 → 1.0.1
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 +4 -4
- data/.zapier_ruby.yml.example +6 -0
- data/README.md +16 -5
- data/bin/zap +2 -2
- data/lib/zapier_ruby.rb +3 -2
- data/lib/zapier_ruby/base.rb +13 -7
- data/lib/zapier_ruby/config.rb +3 -2
- data/lib/zapier_ruby/version.rb +1 -1
- data/spec/spec_helper.rb +2 -1
- data/spec/zapier_ruby_spec.rb +19 -19
- data/zapier_ruby.gemspec +0 -2
- metadata +1 -16
- data/lib/zapier_ruby/zapper_hook.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab71df7244490a7bc808fd94be2d51afbfef6c02
|
4
|
+
data.tar.gz: 69eadf046f9d11a12800e0f53ffd6a9bcd8e9568
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 648c46940aed13ce97170a67dc577ad18de7565845542014a33d677f0c5d5c317d89783e1e0bac0e5717b7e93062b1c672a67fa6a340656e75fdbfbb70f4dfbf
|
7
|
+
data.tar.gz: 6f53cc1282d72f9678890ef53f277892760866a265690a02c11081d429f643a7a8787bad091254819a8b91d08fe0439220069160622ba6d0aae3a79fe00b97a0
|
data/.zapier_ruby.yml.example
CHANGED
data/README.md
CHANGED
@@ -30,8 +30,13 @@ require 'rubygems'
|
|
30
30
|
require 'zapier_ruby'
|
31
31
|
|
32
32
|
ZapierRuby.configure do |c|
|
33
|
-
c.web_hooks = {example_zap: "webhook_id"}
|
33
|
+
c.web_hooks = { example_zap: "webhook_id" }
|
34
34
|
c.enable_logging = false
|
35
|
+
# For new web hooks, you must provide this param
|
36
|
+
c.account_id = "1234" # Get this from the first part of your webhook URI
|
37
|
+
|
38
|
+
# For older webhooks, you should override the base uri to the old uri
|
39
|
+
c.base_uri = "https://hooks.zapier.com/hooks/catch/"
|
35
40
|
end
|
36
41
|
|
37
42
|
zapper = ZapierRuby::Zapper.new(:example_zap)
|
@@ -42,8 +47,7 @@ else
|
|
42
47
|
puts "it remains unzapped"
|
43
48
|
end
|
44
49
|
|
45
|
-
|
46
|
-
zapper = ZapierRuby::ZapperHook.new(url: standard_url)
|
50
|
+
zapper = ZapierRuby::Zapper.new(url: standard_url)
|
47
51
|
|
48
52
|
if zapper.zap({hello: "world"})
|
49
53
|
puts "zapped it"
|
@@ -53,7 +57,7 @@ end
|
|
53
57
|
|
54
58
|
```
|
55
59
|
|
56
|
-
You can find the value to fill in for "webhook id" in the location highlighted below ('xxxxxx' in the green box) when configuring your Zap:
|
60
|
+
You can find the value to fill in for "webhook id" and "account id" in the location highlighted below ('xxxxxx' in the green box) when configuring your Zap:
|
57
61
|
|
58
62
|

|
59
63
|
|
@@ -74,8 +78,15 @@ To use this gem from the command line, you can leverage the `bin/zap` Ruby execu
|
|
74
78
|
|
75
79
|
```yaml
|
76
80
|
web_hooks:
|
77
|
-
:
|
81
|
+
:test_zap: "xxxxxx"
|
78
82
|
enable_logging: false
|
83
|
+
|
84
|
+
# for new zaps, grab you account id from your webhook uri
|
85
|
+
account_id: 1234
|
86
|
+
|
87
|
+
# for older zaps, use this base uri
|
88
|
+
base_uri: https://zapier.com/hooks/catch/
|
89
|
+
|
79
90
|
```
|
80
91
|
|
81
92
|
You must pass `zap [zap_name] [Message]` to the executable. For example:
|
data/bin/zap
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
1
|
+
#!/usr/bin/env ruby
|
2
2
|
require_relative '../lib/zapier_ruby'
|
3
3
|
|
4
4
|
FILE_NAME = ".zapier_ruby.yml"
|
@@ -12,4 +12,4 @@ end
|
|
12
12
|
zap_name = ARGV[0].nil? ? raise("Must supply a zap name") : ARGV[0].to_sym
|
13
13
|
message = ARGV[1] || "No message supplied."
|
14
14
|
|
15
|
-
ZapierRuby::Zapper.new(zap_name).zap({Message: message})
|
15
|
+
puts ZapierRuby::Zapper.new(zap_name).zap({Message: message})
|
data/lib/zapier_ruby.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
require '
|
1
|
+
require 'net/http'
|
2
|
+
require 'uri'
|
3
|
+
require 'json'
|
2
4
|
require 'yaml'
|
3
5
|
require 'delegate'
|
4
6
|
require 'logger'
|
@@ -9,7 +11,6 @@ require 'zapier_ruby/logger_decorator'
|
|
9
11
|
require 'zapier_ruby/config'
|
10
12
|
require 'zapier_ruby/base'
|
11
13
|
require 'zapier_ruby/zapper'
|
12
|
-
require 'zapier_ruby/zapper_hook'
|
13
14
|
|
14
15
|
module ZapierRuby
|
15
16
|
class << self
|
data/lib/zapier_ruby/base.rb
CHANGED
@@ -5,15 +5,17 @@ module ZapierRuby
|
|
5
5
|
private
|
6
6
|
|
7
7
|
def post_zap(params)
|
8
|
-
|
9
|
-
|
8
|
+
uri = URI.parse(zap_url)
|
9
|
+
logger.debug(uri)
|
10
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
11
|
+
http.use_ssl = true
|
12
|
+
request = Net::HTTP::Post.new(uri.request_uri, zap_headers)
|
13
|
+
request.body = params.to_json
|
14
|
+
http.request(request)
|
15
|
+
rescue StandardError => err
|
10
16
|
raise ZapierServerError, err
|
11
17
|
end
|
12
18
|
|
13
|
-
def rest_client
|
14
|
-
@rest_client ||= RestClient::Resource.new(zap_url, ssl_version: 'TLSv1')
|
15
|
-
end
|
16
|
-
|
17
19
|
def zap_web_hook_id
|
18
20
|
@zap_web_hook ||= config.web_hooks[zap_name]
|
19
21
|
end
|
@@ -26,7 +28,11 @@ module ZapierRuby
|
|
26
28
|
end
|
27
29
|
|
28
30
|
def zap_url
|
29
|
-
|
31
|
+
if config.account_id
|
32
|
+
"#{config.base_uri}/#{config.account_id}/#{zap_web_hook_id}/"
|
33
|
+
else
|
34
|
+
"#{config.base_uri}/#{zap_web_hook_id}/"
|
35
|
+
end
|
30
36
|
end
|
31
37
|
|
32
38
|
def config
|
data/lib/zapier_ruby/config.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
module ZapierRuby
|
2
2
|
class Config
|
3
|
-
attr_accessor :base_uri, :web_hooks, :enable_logging, :logger
|
3
|
+
attr_accessor :base_uri, :web_hooks, :enable_logging, :logger, :account_id
|
4
4
|
|
5
5
|
def initialize
|
6
|
-
self.base_uri = "https://zapier.com/hooks/catch
|
6
|
+
self.base_uri = "https://hooks.zapier.com/hooks/catch"
|
7
7
|
self.web_hooks = { example_webhook: "webhook_id" }
|
8
8
|
self.enable_logging = true
|
9
9
|
self.logger = Logger.new(STDOUT)
|
10
|
+
self.account_id = nil
|
10
11
|
end
|
11
12
|
|
12
13
|
def configure_with(path_to_yaml_file)
|
data/lib/zapier_ruby/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/spec/zapier_ruby_spec.rb
CHANGED
@@ -13,7 +13,7 @@ require 'spec_helper'
|
|
13
13
|
|
14
14
|
describe 'Zapper' do
|
15
15
|
let(:zapper) { ZapierRuby::Zapper }
|
16
|
-
let(:catch_url) { 'https://zapier.com/hooks/catch/webhook_id/' }
|
16
|
+
let(:catch_url) { 'https://hooks.zapier.com/hooks/catch/webhook_id/' }
|
17
17
|
let(:instance) { zapper.new(:example_zap) }
|
18
18
|
|
19
19
|
describe '#zap_url' do
|
@@ -22,12 +22,12 @@ require 'spec_helper'
|
|
22
22
|
it 'web_hook_id has val' do
|
23
23
|
url = zapper.new(:nil, 'webhook_id/uuiq').send(:zap_url)
|
24
24
|
|
25
|
-
expect(url).to eq 'https://zapier.com/hooks/catch/webhook_id/uuiq/'
|
25
|
+
expect(url).to eq 'https://hooks.zapier.com/hooks/catch/webhook_id/uuiq/'
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
29
|
it '.base_uri' do
|
30
|
-
expect(ZapierRuby.config.base_uri).to eq "https://zapier.com/hooks/catch
|
30
|
+
expect(ZapierRuby.config.base_uri).to eq "https://hooks.zapier.com/hooks/catch"
|
31
31
|
end
|
32
32
|
|
33
33
|
describe '#zap' do
|
@@ -41,27 +41,27 @@ require 'spec_helper'
|
|
41
41
|
stub_request(:post, catch_url).with(body: body).to_return(body: result.to_json)
|
42
42
|
response = instance.zap(body)
|
43
43
|
|
44
|
-
expect(response.code).to eq 200
|
45
|
-
expect(JSON.parse(response)['status']).to eq 'success'
|
44
|
+
expect(response.code).to eq "200"
|
45
|
+
expect(JSON.parse(response.body)['status']).to eq 'success'
|
46
46
|
end
|
47
47
|
end
|
48
|
-
end
|
49
|
-
|
50
|
-
describe 'ZapperHook' do
|
51
|
-
let(:zapper_hook) { ZapierRuby::ZapperHook }
|
52
|
-
let(:hookurl) { 'https://hooks.zapier.com/hooks/standard/1234/uuiq/' }
|
53
|
-
let(:instance) { zapper_hook.new(url: hookurl) }
|
54
48
|
|
55
|
-
|
56
|
-
|
49
|
+
describe 'with account id' do
|
50
|
+
it 'has account id in url' do
|
51
|
+
ZapierRuby.configure { |c| c.account_id = "12345" }
|
52
|
+
url = zapper.new(:nil, 'uuiq').send(:zap_url)
|
53
|
+
expect(url).to eq 'https://hooks.zapier.com/hooks/catch/12345/uuiq/'
|
54
|
+
ZapierRuby.configure { |c| c.account_id = nil }
|
55
|
+
end
|
57
56
|
end
|
58
57
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
58
|
+
describe 'with base uri configured' do
|
59
|
+
it 'has account id in url' do
|
60
|
+
ZapierRuby.configure { |c| c.base_uri = "https://test.com" }
|
61
|
+
url = zapper.new(:nil, 'uuiq').send(:zap_url)
|
62
|
+
expect(url).to eq 'https://test.com/uuiq/'
|
63
|
+
ZapierRuby.configure { |c| c.base_uri = nil }
|
64
|
+
end
|
65
65
|
end
|
66
66
|
end
|
67
67
|
end
|
data/zapier_ruby.gemspec
CHANGED
@@ -18,8 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "rest-client"
|
22
|
-
|
23
21
|
spec.add_development_dependency "bundler", "~> 1.7"
|
24
22
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
23
|
spec.add_development_dependency "rspec"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zapier_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Peterson
|
@@ -10,20 +10,6 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2019-08-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rest-client
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: bundler
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -116,7 +102,6 @@ files:
|
|
116
102
|
- lib/zapier_ruby/logger_decorator.rb
|
117
103
|
- lib/zapier_ruby/version.rb
|
118
104
|
- lib/zapier_ruby/zapper.rb
|
119
|
-
- lib/zapier_ruby/zapper_hook.rb
|
120
105
|
- spec/spec_helper.rb
|
121
106
|
- spec/zapier_ruby_spec.rb
|
122
107
|
- zapier_ruby.gemspec
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module ZapierRuby
|
2
|
-
class ZapperHook < Base
|
3
|
-
attr_accessor :opt_hash
|
4
|
-
|
5
|
-
def initialize(opt_hash={})
|
6
|
-
self.opt_hash = opt_hash
|
7
|
-
self.logger = LoggerDecorator.new(config.enable_logging)
|
8
|
-
end
|
9
|
-
|
10
|
-
def zap(params={})
|
11
|
-
logger.debug "Zapping #{zap_url} with params: #{params.inspect}"
|
12
|
-
post_zap(params)
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def zap_url
|
18
|
-
"#{opt_hash[:url]}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|