hypertrack 0.1.0 → 0.1.3

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: 84303e29979cffc3077bef07b0cdc047c191510a
4
- data.tar.gz: d3165cb9c2e75557e1c4eb4f67ab67b63d294ec4
3
+ metadata.gz: 5b53fdfbda4836c6e9930a69b51216a55da9f377
4
+ data.tar.gz: 8e2b3e558025a024d19151170adc0339a041a498
5
5
  SHA512:
6
- metadata.gz: e709f5dc1937115e97a1148a386ec28231847abdb4f63366ca9d21b6a7c9889b4abfeaebe1d39e69b945f607a6b6fc1937781d2d289ebb1d7c568713fa36dd09
7
- data.tar.gz: ca4f1411f10b913c58cc4a078c1573288b7a14ad567f3bf46a4a7e55e399f9a4ba1e8655f8c14c8d3b03de0d2927c70a58527211ed5d34c29b72cbdb13a42c2e
6
+ metadata.gz: 18fd12c1d2367732e5c1eb47ebab4cf21df8c9af630acdb62512435e51f7264cd368725f3f4208fe4d55b0f72a11eb25ad54a00e73eb3e5639cd8308965839a3
7
+ data.tar.gz: 04f24aac4f4352c82e247071b85f2ec19ee96400d12b8843ccecbd58acd3be0256611a78a7f009b19d67d845878a214fa9fd62aac714ce711fae4d279c287d10
@@ -9,6 +9,9 @@ require_relative "hypertrack/errors/hypertrack_errors"
9
9
 
10
10
  # API Operations
11
11
  require_relative "hypertrack/api_operations/common/create"
12
+ require_relative "hypertrack/api_operations/common/patch"
13
+ require_relative "hypertrack/api_operations/common/get"
14
+ require_relative "hypertrack/api_operations/common/nearby"
12
15
  require_relative "hypertrack/api_operations/common/retrieve"
13
16
  require_relative "hypertrack/api_operations/common/list"
14
17
  require_relative "hypertrack/api_operations/common/update"
@@ -6,7 +6,8 @@ module HyperTrack
6
6
 
7
7
  VERB_MAP = {
8
8
  :get => Net::HTTP::Get,
9
- :post => Net::HTTP::Post
9
+ :post => Net::HTTP::Post,
10
+ :patch => Net::HTTP::Patch
10
11
  }
11
12
 
12
13
  ACCEPTED_RESPONSE_CODES = [200, 201]
@@ -21,6 +22,13 @@ module HyperTrack
21
22
  end
22
23
  alias_method :update, :create
23
24
 
25
+ def patch(api_path, data={})
26
+ api_uri = get_uri(api_path)
27
+ request_object = create_request_object(api_uri, :patch)
28
+ request_object.body = data.to_json
29
+ make_request(api_uri, request_object)
30
+ end
31
+
24
32
  def fetch(api_path, query_params={})
25
33
  api_path = path_with_params(api_path, query_params) if query_params.is_a?(Hash) && query_params.keys.length > 0
26
34
  api_uri = get_uri(api_path)
@@ -28,8 +36,6 @@ module HyperTrack
28
36
  make_request(api_uri, request_object)
29
37
  end
30
38
 
31
- private
32
-
33
39
  def path_with_params(path, params)
34
40
  encoded_params = URI.encode_www_form(params)
35
41
  [path, encoded_params].join("?")
@@ -12,6 +12,10 @@ module HyperTrack
12
12
  self.update(path, params)
13
13
  end
14
14
 
15
+ def meter(params={})
16
+ path = "meter/"
17
+ self.get(path, params)
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -0,0 +1,16 @@
1
+ module HyperTrack
2
+ module ApiOperations
3
+ module Common
4
+ module Get
5
+
6
+ def get(path, params, required_params=[])
7
+ if HyperTrack::ParamsValidator.valid_args?(params, required_params, self.class::VALID_ATTRIBUTE_VALUES)
8
+ api_path = "#{self.class::API_BASE_PATH}#{self.id}/" + path
9
+ result = HyperTrack::ApiClient.fetch(api_path, params)
10
+ end
11
+ end
12
+
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ module HyperTrack
2
+ module ApiOperations
3
+ module Common
4
+ module Nearby
5
+
6
+ def nearby(params, required_params=[:action_id])
7
+ if HyperTrack::ParamsValidator.valid_args?(params, required_params, get_class_name::VALID_ATTRIBUTE_VALUES)
8
+ api_path = "#{get_class_name::API_BASE_PATH}" + "nearby/"
9
+ response = HyperTrack::ApiClient.fetch(api_path, params)
10
+ result = []
11
+
12
+ response["results"].each do |user|
13
+ result.push(get_class_name.new(user['id'], user))
14
+ end
15
+
16
+ result
17
+ end
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ module HyperTrack
2
+ module ApiOperations
3
+ module Common
4
+ module Patch
5
+
6
+ def patch(params={})
7
+ api_path = "#{self.class::API_BASE_PATH}#{self.id}/"
8
+ result = HyperTrack::ApiClient.patch(api_path, params)
9
+ update_attributes_in_object(result)
10
+ end
11
+
12
+ private
13
+
14
+ def update_attributes_in_object(result)
15
+ result = Util.symbolize_keys(result)
16
+
17
+ self_keys = self.keys
18
+
19
+ result.each do |key, value|
20
+ if self_keys.include?(key) && self[key] != value
21
+ self[key] = value
22
+ end
23
+ end
24
+
25
+ self
26
+ end
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -7,6 +7,10 @@ module HyperTrack
7
7
  self.update(path, params, [:action_ids])
8
8
  end
9
9
 
10
+ def update(params)
11
+ self.patch(params)
12
+ end
13
+
10
14
  end
11
15
  end
12
16
  end
@@ -3,6 +3,9 @@ module HyperTrack
3
3
  extend HyperTrack::ApiOperations::Common::Create
4
4
  extend HyperTrack::ApiOperations::Common::Retrieve
5
5
  extend HyperTrack::ApiOperations::Common::List
6
+ extend HyperTrack::ApiOperations::Common::Nearby
7
+ include HyperTrack::ApiOperations::Common::Patch
8
+ include HyperTrack::ApiOperations::Common::Get
6
9
  include HyperTrack::ApiOperations::Common::Update
7
10
 
8
11
  VALID_VEHICLE_TYPES = [:walking, :bicycle, :motorcycle, :car, :'3-wheeler', :van] #[:flight, :train, :ship]
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hypertrack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Utsav Kesharwani
8
+ - Amit Rathi
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2017-04-22 00:00:00.000000000 Z
12
+ date: 2017-06-26 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: json
@@ -26,7 +27,7 @@ dependencies:
26
27
  version: '1.8'
27
28
  description: Ruby wrapper around HyperTrack's API. Refer http://docs.hypertrack.com/
28
29
  for more information.
29
- email: utsav.kesharwani@gmail.com
30
+ email: utsav.kesharwani@gmail.com, amit@hypertrack.io
30
31
  executables: []
31
32
  extensions: []
32
33
  extra_rdoc_files: []
@@ -35,7 +36,10 @@ files:
35
36
  - lib/hypertrack/api_client.rb
36
37
  - lib/hypertrack/api_operations/action_api.rb
37
38
  - lib/hypertrack/api_operations/common/create.rb
39
+ - lib/hypertrack/api_operations/common/get.rb
38
40
  - lib/hypertrack/api_operations/common/list.rb
41
+ - lib/hypertrack/api_operations/common/nearby.rb
42
+ - lib/hypertrack/api_operations/common/patch.rb
39
43
  - lib/hypertrack/api_operations/common/retrieve.rb
40
44
  - lib/hypertrack/api_operations/common/update.rb
41
45
  - lib/hypertrack/api_operations/user_api.rb