ruby-jet 0.0.2 → 0.0.3

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: 42b4c91faff518e576162f232c2ff620dab0fc22
4
- data.tar.gz: 632a4490167f5cb65195799a9760c35b98bd10da
3
+ metadata.gz: 71afa7eeb9d1be14f937d9dc16b4be21327aaf13
4
+ data.tar.gz: 2e95a46129958770107982df8a5875b2d8c6cd85
5
5
  SHA512:
6
- metadata.gz: 7d456e2e4ff8ac7120ae4a4028f2dca379e9f73c3480755f7e4b095218815b453e98620fd5d1bfa2874254f4f4813690298c9ffdebd585e56e008b3d7836d6dd
7
- data.tar.gz: 09b571c9121f44da4df76a4c4993311ca9bf91c28e004c3c201cd16a7da7a60ebb06353c5ef8b761a57ce73010e1d16f4de720fd7af7bd3002c59bdc081f4317
6
+ metadata.gz: fcc64b65fb20aed545692acdf068b62d99a16677f734861d545c8af1ca22142fafc04b6ab7d8fe1d59a6278c86b0ab13398479b35fdf98502c3653f9d16da21a
7
+ data.tar.gz: 507959a7265744150083dc1c89df0a9fb7dccc3a349e17be27dadba200424ff00a17456a58ec002d77795000cde38d977984bba4f832f231017dfd1eaea2bf9d
data/lib/jet.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  class Jet
2
- def self.test
3
- return 'Hello, gem test!'
2
+ def self.client(credentials = {})
3
+ Client.new(credentials)
4
4
  end
5
5
  end
6
+
7
+ require 'jet/client'
@@ -0,0 +1,35 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+
4
+ class Jet::Client
5
+
6
+ API_URL = 'https://merchant-api.jet.com/api'
7
+
8
+ def initialize(config = {})
9
+ @api_user = config[:api_user]
10
+ @secret = config[:secret]
11
+ @merchant_id = config[:merchant_id]
12
+ end
13
+
14
+ def get_token
15
+ if not (@id_token and @token_type and @expires_on > Time.now)
16
+ body = {
17
+ user: @api_user,
18
+ pass: @secret
19
+ }
20
+ response = RestClient.post("#{API_URL}/token", body.to_json)
21
+ parsed_response = JSON.parse(response.body)
22
+ @id_token = parsed_response['id_token']
23
+ @token_type = parsed_response['token_type']
24
+ @expires_on = Time.parse(parsed_response['expires_on'])
25
+ end
26
+
27
+ {Authorization: "#{@token_type} #{@id_token}"}
28
+ end
29
+
30
+ def orders
31
+ Orders.new(self)
32
+ end
33
+ end
34
+
35
+ require 'jet/client/orders'
@@ -0,0 +1,48 @@
1
+ require 'rest-client'
2
+ require 'json'
3
+
4
+ class Jet::Client::Orders
5
+
6
+ STATUSES = {
7
+ created: 'created',
8
+ ready: 'ready',
9
+ acknowledged: 'acknowledged',
10
+ inprogress: 'inprogress',
11
+ complete: 'complete',
12
+ }
13
+
14
+ def initialize(client)
15
+ @client = client
16
+ end
17
+
18
+ def get_orders(status = :ready)
19
+ headers = @client.get_token
20
+ query_status = STATUSES[status]
21
+ response = RestClient.get("#{Jet::Client::API_URL}/orders/#{query_status}", headers)
22
+ if response.code == 200
23
+ JSON.parse(response.body)
24
+ else
25
+ nil
26
+ end
27
+ end
28
+
29
+ def get_order(order_url)
30
+ headers = @client.get_token
31
+ response = RestClient.get("#{Jet::Client::API_URL}#{order_url}", headers)
32
+ if response.code == 200
33
+ JSON.parse(response.body)
34
+ else
35
+ nil
36
+ end
37
+ end
38
+
39
+ def get_order_by_id(order_id)
40
+ headers = @client.get_token
41
+ response = RestClient.get("#{Jet::Client::API_URL}/orders/withoutShipmentDetail/#{order_id}", headers)
42
+ if response.code == 200
43
+ JSON.parse(response.body)
44
+ else
45
+ nil
46
+ end
47
+ end
48
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Wells
@@ -9,7 +9,35 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2015-09-29 00:00:00.000000000 Z
12
- dependencies: []
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: '1.8'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.8'
13
41
  description: Jet API service calls implemented in Ruby
14
42
  email: flipstock@gmail.com
15
43
  executables: []
@@ -17,6 +45,8 @@ extensions: []
17
45
  extra_rdoc_files: []
18
46
  files:
19
47
  - lib/jet.rb
48
+ - lib/jet/client.rb
49
+ - lib/jet/client/orders.rb
20
50
  homepage: https://github.com/jasonwells/ruby-jet
21
51
  licenses:
22
52
  - MIT