dji 0.2.2 → 0.3.0

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: ce6632acbc4955b842828b9f919f91b187809d95
4
- data.tar.gz: 25f07f378ec949b2e03f89b34238463337aac6c9
3
+ metadata.gz: 7e2a5d2d495eeeaadd66d708f483a1db82642463
4
+ data.tar.gz: 608dd161a829331acba3ac040471fd6a18ade786
5
5
  SHA512:
6
- metadata.gz: ce8fe79ade0ef595333dca224eed25636e7270746409d6511a55ca10ec90ec00c730c1737c94d3b31279347f8fdfcf93e584758cfe34c07ff08ecc9f6e79593a
7
- data.tar.gz: 26a8617b7772d710d4fdfb4c24f5b6d9a0ae3420325944164caaed574c0387688dc3eca03a9eef7df3e8bee9aa025981d30a2845011c3f6d27e18bc436eeadec
6
+ metadata.gz: 23c77b9dbcf7027cef897adeb4ae74764aaf1900f45d6c74465a2f13fcd27793a06cccc50167f39ee62dffab4c3990bc13e43028355746a24faedf02ca3b20fa
7
+ data.tar.gz: 482320f82bee5ac0a77e43716133e0b6a84a3ca754b224e3b3d84d56ee8d735de02edcde66ee5b94b82ca25a332a6bab5f4211a770dfc4fa3b6ebbc1d2d58e2a
data/README.md CHANGED
@@ -18,6 +18,11 @@ If you do not manage your Ruby installations with RVM and are just using the sys
18
18
 
19
19
  $ sudo gem install dji
20
20
 
21
+ If you are on Ubuntu Linux, you can do:
22
+
23
+ $ sudo apt install ruby ruby-dev
24
+ $ sudo gem install dji
25
+
21
26
  ## Usage
22
27
 
23
28
  ### Track an order
@@ -5,6 +5,7 @@ module DJI
5
5
  option :order_number, required: true, aliases: :o
6
6
  option :phone_tail, required: true, aliases: :p
7
7
  option :repeat, aliases: :r
8
+ option :publish, required: false, default: false
8
9
 
9
10
  def track
10
11
  if options[:repeat].present?
@@ -13,11 +14,13 @@ module DJI
13
14
  puts "Requesting order tracking details every #{interval} seconds. Press CONTROL-C to stop..."
14
15
 
15
16
  while true
16
- DJI::OrderTracking.tracking_details(options[:order_number], options[:phone_tail])
17
+ data = DJI::OrderTracking.tracking_details(options[:order_number], options[:phone_tail])
18
+ DJI::OrderTracking.publish(data) if data.present? && options[:publish].present?
17
19
  sleep(interval)
18
20
  end
19
21
  else
20
- DJI::OrderTracking.tracking_details(options[:order_number], options[:phone_tail])
22
+ data = DJI::OrderTracking.tracking_details(options[:order_number], options[:phone_tail])
23
+ DJI::OrderTracking.publish(data) if data.present? && options[:publish].present?
21
24
  end
22
25
  end
23
26
  end
@@ -1,5 +1,6 @@
1
1
  require 'net/http'
2
2
  require 'uri'
3
+ require 'json'
3
4
 
4
5
  require 'nokogiri'
5
6
 
@@ -42,7 +43,7 @@ module DJI
42
43
  request.set_form_data params
43
44
  res = http.request(request)
44
45
 
45
- case res
46
+ data = case res
46
47
  when Net::HTTPSuccess, Net::HTTPRedirection
47
48
  # OK
48
49
  page = Nokogiri::HTML(res.body)
@@ -57,11 +58,13 @@ module DJI
57
58
  data[:tracking_number] = content.at_xpath('div[6]/a').text
58
59
 
59
60
  print_tracking_details(data)
61
+ data
60
62
  else
61
- puts res.inspect
62
- res.error!
63
+ puts "There was an error: #{res.message}"
64
+ nil
63
65
  end
64
-
66
+
67
+ data
65
68
  end
66
69
 
67
70
  # The URL for order tracking
@@ -84,6 +87,45 @@ module DJI
84
87
  puts
85
88
  end
86
89
 
90
+ def publish(data)
91
+ url = URI.parse(publish_url)
92
+ params = {
93
+ format: :json,
94
+ order: {
95
+ order_id: data[:order_number],
96
+ payment_status: data[:payment_status],
97
+ payment_total: data[:total],
98
+ shipping_status: data[:shipping_status],
99
+ shipping_company: data[:shipping_company],
100
+ tracking_number: data[:tracking_number]
101
+ }
102
+ }
103
+
104
+ headers = {
105
+ 'Accepts' => 'application/json',
106
+ 'Content-Type' => 'application/json'
107
+ }
108
+
109
+ http = Net::HTTP.new url.host, url.port
110
+ request = Net::HTTP::Post.new url.path, headers
111
+ request.body = params.to_json
112
+ res = http.request(request)
113
+
114
+ case res
115
+ when Net::HTTPSuccess, Net::HTTPRedirection
116
+ puts "You have successfully published your latest order status."
117
+ puts "See order statuses reported by others at #{publish_url}"
118
+ else
119
+ puts "There was an error trying to publish your order status: #{res.message}"
120
+ end
121
+
122
+ end
123
+
124
+ def publish_url
125
+ #'http://localhost:3000/orders'
126
+ 'http://dji-track.herokuapp.com/orders'
127
+ end
128
+
87
129
  end
88
130
 
89
131
  end
data/lib/dji/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module DJI
2
- VERSION = '0.2.2'
2
+ VERSION = '0.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dji
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Elliott
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-27 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport