factor-connector-web 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/factor/connector/web.rb +40 -15
  3. metadata +11 -17
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 383c9a1fd84840d528fe34db1c68b4d79038d1a9
4
+ data.tar.gz: c540b0c7a9c37ecdca54d41c3e3b33040ce83d55
5
+ SHA512:
6
+ metadata.gz: 7e18c168779dd6c209ccdd7e19b410d7e8c2adadb1ebefad9c00125020dc5080f1c546209c599aa1308467fb5e115470d047cf78bb5464b9568b1051a06ab007
7
+ data.tar.gz: dd20c9e5253bc9532d48118e933321fe9ed94468fdcf9009a688d8c5f00b7d9d088480bfa80e6dd648b29d0de5cd5b2c4c005a146223b2955b3eed04aa5648e8
@@ -6,7 +6,7 @@ Factor::Connector.service 'web' do
6
6
  start do |data|
7
7
  info 'starting webhook'
8
8
  hook_id = data['id'] || 'post'
9
- hook_url = web_hook id: hook_id do
9
+ dynamic_hook_url = web_hook id: hook_id do
10
10
  start do |_listener_start_params, hook_data, _req, _res|
11
11
  info 'Got a Web Hook POST call'
12
12
  post_data = hook_data.dup
@@ -18,7 +18,9 @@ Factor::Connector.service 'web' do
18
18
  start_workflow response: post_data
19
19
  end
20
20
  end
21
- info "Webhook started at: #{hook_url}"
21
+ static_hook_url = "/v0.4/hooks/#{hook_id}"
22
+ info "Webhook started at: #{dynamic_hook_url}"
23
+ info "Webhook started at: #{static_hook_url}"
22
24
  end
23
25
  stop do |_data|
24
26
  info 'Stopping...'
@@ -31,26 +33,49 @@ Factor::Connector.service 'web' do
31
33
  url = params['url']
32
34
 
33
35
  fail 'URL is required' unless url
36
+ fail 'Headers (headers) must be a Hash' unless headers.is_a?(Hash)
34
37
 
38
+ header_keys_valid = headers.keys.all?{|k| k.is_a?(String) || k.is_a?(Symbol)}
39
+ header_vals_valid = headers.values.all?{|k| k.is_a?(String) || k.is_a?(Symbol)}
40
+
41
+ fail 'Headers (headers) must be a Hash of keys/values of strings' unless header_vals_valid && header_keys_valid
42
+ fail 'Params (params) must be a hash' unless params.is_a?(Hash)
43
+
44
+ info "Posting to `#{url}`"
35
45
  begin
36
- contents = JSON.parse(contents) if contents.is_a?(String)
46
+ response = RestClient.post(url, contents, headers)
47
+ action_callback response: response
37
48
  rescue
38
- fail "Couldn't parse '#{contents}' as JSON"
49
+ fail "Couldn't call '#{url}'"
39
50
  end
51
+ end
52
+
53
+ action 'get' do |params|
54
+ query = params['params'] || {}
55
+ headers = params['headers'] || {}
56
+ url = params['url']
57
+
58
+ fail 'URL is required' unless url
59
+ fail 'Headers (headers) must be a Hash' unless headers.is_a?(Hash)
60
+
61
+ header_keys_valid = headers.keys.all?{|k| k.is_a?(String) || k.is_a?(Symbol)}
62
+ header_vals_valid = headers.values.all?{|k| k.is_a?(String) || k.is_a?(Symbol)}
63
+
64
+ fail 'Headers (headers) must be a Hash of keys/values of strings' unless header_vals_valid && header_keys_valid
65
+ fail 'Params (params) must be a hash' unless params.is_a?(Hash)
40
66
 
67
+ query_keys_valid = query.keys.all?{|k| k.is_a?(String) || k.is_a?(Symbol)}
68
+ query_vals_valid = query.values.all?{|k| k.is_a?(String) || k.is_a?(Symbol)}
69
+ fail 'Params (params) must be a Hash of keys/values of strings' unless query_keys_valid && query_vals_valid
70
+
71
+ contents = headers.merge(params:query)
72
+
73
+ info "Posting to `#{url}`"
41
74
  begin
42
- headers = JSON.parse(headers) if headers.is_a?(String)
75
+ response = RestClient.get(url, contents)
76
+ action_callback response: response
43
77
  rescue
44
- fail 'Couldnt parse header'
45
- end
46
- if contents
47
- info "Posting to `#{url}`"
48
- begin
49
- response = RestClient.post(url, contents, headers)
50
- action_callback response
51
- rescue
52
- fail "Couldn't call '#{url}'"
53
- end
78
+ fail "Couldn't call '#{url}'"
54
79
  end
55
80
  end
56
81
  end
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factor-connector-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 0.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Maciej Skierkowski
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-10-01 00:00:00.000000000 Z
11
+ date: 2014-11-20 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: factor-connector-api
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: 0.0.3
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.0.3
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rest-client
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
33
  version: 1.7.2
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
40
  version: 1.7.2
46
41
  description:
@@ -53,26 +48,25 @@ files:
53
48
  - lib/factor/connector/web.rb
54
49
  homepage: https://factor.io
55
50
  licenses: []
51
+ metadata: {}
56
52
  post_install_message:
57
53
  rdoc_options: []
58
54
  require_paths:
59
55
  - lib
60
56
  required_ruby_version: !ruby/object:Gem::Requirement
61
- none: false
62
57
  requirements:
63
- - - ! '>='
58
+ - - ">="
64
59
  - !ruby/object:Gem::Version
65
60
  version: '0'
66
61
  required_rubygems_version: !ruby/object:Gem::Requirement
67
- none: false
68
62
  requirements:
69
- - - ! '>='
63
+ - - ">="
70
64
  - !ruby/object:Gem::Version
71
65
  version: '0'
72
66
  requirements: []
73
67
  rubyforge_project:
74
- rubygems_version: 1.8.25
68
+ rubygems_version: 2.2.2
75
69
  signing_key:
76
- specification_version: 3
70
+ specification_version: 4
77
71
  summary: Web Factor.io Connector
78
72
  test_files: []