rtx-api 0.2.0 → 0.2.1

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