rtx-api 0.2.0 → 0.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a7517784db2586173fe6d8f89d9a715834b413e3
4
- data.tar.gz: a69406c3015e7354ffb81391297065785087f9b6
3
+ metadata.gz: 8b4db61a6bd24dffc972f5bed4d5cae701181d29
4
+ data.tar.gz: 79aadaf223ca11d2b64095279f2aed58f7153bce
5
5
  SHA512:
6
- metadata.gz: 02a241999b9dc5c24f904b1c80dbbeda32165cedae82c7ca8956c6b6e335dcf25767bb0c2fe93220506ca6ebb8859cde71ecc274900dc30c66d1f46f64a41e48
7
- data.tar.gz: 289ba8e9120b8d91878747f699c0005170b5958408f38b2f0b4247583a461275c9ded6b8e1cb654c5b309d618af9be07ac50b9a518427d14f56bea4c5eb5128e
6
+ metadata.gz: 785c055d09f561f1b8cf3bc274a55a855525e01f230d4860f082b3a0ce35336cedd18bcccc6218cb76cc918cc87fd16cf2a7d984da2a317be0c5a76d874a54cb
7
+ data.tar.gz: 6736087d36bb27051ae5abb86a6676463d5e9c51786070d2a9c77ccad04ff240c9bfd90caff0314a04faf1953af6841598ef8d34ccce75e7aa1bd9be81a7261f
@@ -31,62 +31,53 @@ module RTX
31
31
  if token
32
32
  request = self.class.delete("#{rtx_api_url}/auth", options(:delete))
33
33
  if request.code != 204
34
- raise API::Errors::AuthenticationError.new("Authentication Logout Error: #{response}")
34
+ raise API::Errors::AuthenticationError.new("Authentication Logout Error: #{request}")
35
35
  end
36
36
  @token, @expires, @account_id, @profile_id = nil, nil, nil, nil
37
37
  end
38
38
  end
39
39
 
40
40
  def method_missing(method, *args, &block)
41
- allowed_resources = API::Resources.allowed_resources
42
- method_name = method.to_s
43
-
44
- if allowed_resources.include? method_name
41
+ if resource_path(method)
45
42
  attrs = {}
46
43
  if args.size > 0
47
44
  attrs = args.last.is_a?(Hash) ? args.pop : {}
48
45
  end
49
- RTX::API::Collection.new(self, method_name, attrs)
46
+ RTX::API::Collection.new(self, method, attrs)
50
47
  end
51
48
  end
52
49
 
53
50
  def collection(resource_name, attrs = {})
54
- resource_exists?(resource_name)
55
- request = self.class.get("#{rtx_api_url}/#{resource_name}", options(:get, attrs))
51
+ request = self.class.get("#{rtx_api_url}/#{resource_path(resource_name)}", options(:get, attrs))
56
52
  handle_request(request)
57
53
  end
58
54
 
59
55
  def detail(resource_name, resource_id, attrs = {})
60
- resource_exists?(resource_name)
61
56
  raise API::Errors::RequestError.new("id was not provided") if resource_id.nil?
62
- request = self.class.get("#{rtx_api_url}/#{resource_name}/#{resource_id}", options(:get, attrs))
57
+ request = self.class.get("#{rtx_api_url}/#{resource_path(resource_name)}/#{resource_id}", options(:get, attrs))
63
58
  handle_request(request)
64
59
  end
65
60
 
66
61
  def post(resource_name, attrs = {})
67
- resource_exists?(resource_name)
68
- request = self.class.post("#{rtx_api_url}/#{resource_name}", options(:post, attrs))
62
+ request = self.class.post("#{rtx_api_url}/#{resource_path(resource_name)}", options(:post, attrs))
69
63
  handle_request(request)
70
64
  end
71
65
 
72
66
  def put(resource_name, resource_id, attrs = {})
73
- resource_exists?(resource_name)
74
67
  raise API::Errors::RequestError.new("id was not provided") if resource_id.nil?
75
- request = self.class.put("#{rtx_api_url}/#{resource_name}/#{resource_id}", options(:put, attrs))
68
+ request = self.class.put("#{rtx_api_url}/#{resource_path(resource_name)}/#{resource_id}", options(:put, attrs))
76
69
  handle_request(request)
77
70
  end
78
71
 
79
72
  def patch(resource_name, resource_id, attrs = {})
80
- resource_exists?(resource_name)
81
73
  raise API::Errors::RequestError.new("id was not provided") if resource_id.nil?
82
- request = self.class.patch("#{rtx_api_url}/#{resource_name}/#{resource_id}", options(:patch, attrs))
74
+ request = self.class.patch("#{rtx_api_url}/#{resource_path(resource_name)}/#{resource_id}", options(:patch, attrs))
83
75
  handle_request(request)
84
76
  end
85
77
 
86
78
  def delete(resource_name, resource_id)
87
- resource_exists?(resource_name)
88
79
  raise API::Errors::RequestError.new("id was not provided") if resource_id.nil?
89
- request = self.class.delete("#{rtx_api_url}/#{resource_name}/#{resource_id}", options(:delete))
80
+ request = self.class.delete("#{rtx_api_url}/#{resource_path(resource_name)}/#{resource_id}", options(:delete))
90
81
  handle_request(request)
91
82
  end
92
83
 
@@ -102,13 +93,12 @@ module RTX
102
93
  Oj.load(request.body, symbol_keys: true)
103
94
  end
104
95
 
105
- def resource_exists?(resource_name)
106
- allowed_resources = API::Resources.allowed_resources
107
- if !allowed_resources.include? resource_name.to_s
96
+ def resource_path(resource_name)
97
+ path = API::Resources.allowed_resources[resource_name.to_sym]
98
+ if !path
108
99
  raise API::Errors::InvalidResourceError.new("The resource provided (#{resource_name}) is not allowed")
109
100
  end
110
-
111
- true
101
+ path
112
102
  end
113
103
 
114
104
  protected
@@ -2,37 +2,38 @@ module RTX
2
2
  module API
3
3
  class Resources
4
4
  def self.allowed_resources
5
- %W(
6
- accounts
7
- alerts
8
- alert_frequencies
9
- alert_types
10
- campaigns
11
- contacts
12
- countries
13
- crawlers
14
- groups
15
- items
16
- layouts
17
- locations
18
- notes
19
- permissions
20
- profiles
21
- requests
22
- request_pages
23
- request_types
24
- reviews
25
- review_status_labels
26
- single_sign_ons
27
- sources
28
- states
29
- templates
30
- template_tags
31
- urls
32
- users
33
- user_types
34
- whitelabels
35
- ).freeze
5
+ {
6
+ accounts: 'accounts',
7
+ alerts: 'alerts',
8
+ alert_frequencies: 'alert_frequencies',
9
+ alert_types: 'alert_types',
10
+ campaigns: 'campaigns',
11
+ contacts: 'contacts',
12
+ countries: 'countries',
13
+ crawlers: 'crawlers',
14
+ groups: 'groups',
15
+ keywords: 'insights/keywords',
16
+ items: 'items',
17
+ layouts: 'layouts',
18
+ locations: 'locations',
19
+ notes: 'notes',
20
+ permissions: 'permissions',
21
+ profiles: 'profiles',
22
+ requests: 'requests',
23
+ request_pages: 'request_pages',
24
+ request_types: 'request_types',
25
+ reviews: 'reviews',
26
+ review_status_labels: 'review_status_labels',
27
+ single_sign_ons: 'single_sign_ons',
28
+ sources: 'sources',
29
+ states: 'states',
30
+ templates: 'templates',
31
+ template_tags: 'template_tags',
32
+ urls: 'urls',
33
+ users: 'users',
34
+ user_types: 'user_types',
35
+ whitelabels: 'whitelabels'
36
+ }.freeze
36
37
  end
37
38
  end
38
39
  end
@@ -1,5 +1,5 @@
1
1
  module RTX
2
2
  module API
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rtx-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ReviewTrackers Engineering
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-18 00:00:00.000000000 Z
11
+ date: 2016-04-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty