easypost 2.6.2 → 2.7.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: 9e4ea608f9ed59cd8a5aa358e373884c2b37798f
4
- data.tar.gz: 4949b48d8f227a058a28fca0de286eb4b1ccfea7
3
+ metadata.gz: 1f178b47d51bce112434a172275e8f6c1b5772c4
4
+ data.tar.gz: 5de1c530ac6212a5fe80e47346ef06f2e2b1eb22
5
5
  SHA512:
6
- metadata.gz: ac2d5c374ddebbf47902f745019154164650f334a48e96b0a21d010e54eb696f7f2bc1be0a5e0b3759dc34018bdad5ac5904b69adb39120aa868b38f1960b700
7
- data.tar.gz: 375b18e205f8baea6ca2978f266604910dce987351b88e89df5799a6eb049bba85c9355208ab3b8343a6c99267fd2056b246ff6eef74d80d7a52cacd86b76685
6
+ metadata.gz: 24ec4dc5c4f23dedc19a21431773ef0370935946d3b7a9a5b8f767b63a4782b694dd5fe81534838a1e379b78b4aaf9ccb25bb1138c30f10bdfc48336a4268f3f
7
+ data.tar.gz: 722b3a9549d80060324b576068e1094d235edcd8daa13e2e96d73c555ac827678ee4a50a78964fdd3fcbe44f07eaeded42b1d1b9cb10093ebd2d850697a85531
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ === 2.7.0 2017-04-04
2
+
3
+ * Changed Report CRUD signatures. requires report type to be passed
4
+
1
5
  === 2.6.2 2017-02-14
2
6
 
3
7
  * Added get_rates method for Orders
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.6.2
1
+ 2.7.0
@@ -1,44 +1,24 @@
1
1
  module EasyPost
2
2
  class Report < Resource
3
- REPORT_TYPES = { shprep: 'shipment', plrep: 'payment_log', trkrep: 'tracker' }
4
-
5
3
  def self.create(params={}, api_key=nil)
6
- url = self.url
4
+ url = "#{self.url}/#{params[:type]}"
7
5
  wrapped_params = {}
8
6
  wrapped_params[class_name.to_sym] = params
9
7
 
10
- if REPORT_TYPES.values.include?(params[:type].to_s)
11
- url += "/#{params[:type]}"
12
- else
13
- raise Error.new("Undetermined Report Type")
14
- end
15
-
16
8
  response, api_key = EasyPost.request(:post, url, api_key, params)
17
9
  return Util.convert_to_easypost_object(response, api_key)
18
10
  end
19
11
 
20
12
  def self.retrieve(params, api_key=nil)
21
- url = self.url
13
+ url = "#{self.url}/#{params[:type]}/#{params[:id]}"
22
14
  obj_id = params[:id].split("_")[0]
23
15
 
24
- if REPORT_TYPES.has_key?(obj_id.to_sym)
25
- url += "/#{REPORT_TYPES[obj_id.to_sym]}/#{params[:id]}"
26
- else
27
- raise Error.new("Undetermined Report Type")
28
- end
29
-
30
16
  response, api_key = EasyPost.request(:get, url, api_key, params)
31
17
  return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
32
18
  end
33
19
 
34
20
  def self.all(filters={}, api_key=nil)
35
- url = self.url
36
-
37
- if REPORT_TYPES.values.include?(filters[:type].to_s)
38
- url += "/#{filters[:type]}"
39
- else
40
- raise Error.new("Undetermined Report Type")
41
- end
21
+ url = "#{self.url}/#{filters[:type]}"
42
22
 
43
23
  response, api_key = EasyPost.request(:get, url, api_key, filters)
44
24
  return EasyPost::Util::convert_to_easypost_object(response, api_key) if response
@@ -1,76 +1,48 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe EasyPost::Report do
4
- [:shipment, :tracker, :payment_log].each do |report_type|
5
- context "report" do
6
- let(:type) { report_type }
7
- let(:type_name) {
8
- case type
9
- when :shipment
10
- "ShipmentReport"
11
- when :tracker
12
- "TrackerReport"
13
- when :payment_log
14
- "PaymentLogReport"
15
- else
16
- raise "Invalid type!"
17
- end
18
- }
19
-
20
- describe '#create' do
21
- it 'creates a report object' do
22
- report = EasyPost::Report.create(
23
- start_date: Date.today - 30,
24
- end_date: Date.today,
25
- type: type
26
- )
27
- expect(report.object).to eq type_name
28
- # will switch that test on when tracker status is deployed
29
- # expect(report.status).to eq 'available'
30
- end
31
- end
32
-
33
- describe '#retrieve' do
34
- it 'retrieves a user created report by public_id' do
35
- report_1 = EasyPost::Report.create(
36
- start_date: Date.today - 30,
37
- end_date: Date.today,
38
- type: type
39
- )
40
- report_2 = EasyPost::Report.retrieve(id: report_1.id)
41
-
42
- expect(report_1.object).to eq type_name
43
- expect(report_2.object).to eq type_name
44
- expect(report_2.id).to eq(report_1.id)
45
- end
46
- end
47
-
48
- describe '#all' do
49
- it 'retrieves all user created reports' do
50
- report_1 = EasyPost::Report.create(
51
- start_date: Date.today - 25,
52
- end_date: Date.today,
53
- type: type
54
- )
4
+ TYPE = 'shipment'
5
+ describe '#create' do
6
+ it 'creates a report object' do
7
+ report = EasyPost::Report.create(
8
+ start_date: Date.today - 30,
9
+ end_date: Date.today,
10
+ type: TYPE
11
+ )
12
+ expect(report.object).to eq 'ShipmentReport'
13
+ expect(['available', 'new']).to include(report.status)
14
+ end
15
+ end
55
16
 
56
- report_2 = EasyPost::Report.create(
57
- start_date: Date.today - 29,
58
- end_date: Date.today,
59
- type: type
60
- )
61
- reports = EasyPost::Report.all(type: type)
17
+ describe '#retrieve' do
18
+ it 'retrieves a user created report by public_id' do
19
+ report_1 = EasyPost::Report.create(
20
+ start_date: Date.today - 30,
21
+ end_date: Date.today,
22
+ type: TYPE
23
+ )
24
+ report_2 = EasyPost::Report.retrieve(type: TYPE, id: report_1.id)
62
25
 
63
- expect(reports.count).to eq 2
64
- end
65
- end
26
+ expect(report_2.id).to eq(report_1.id)
66
27
  end
67
28
  end
68
29
 
69
- it 'fails to create a report object' do
70
- expect { EasyPost::Report.create(
71
- start_date: Date.today - 30,
72
- end_date: Date.today,
73
- type: 'foobar'
74
- ) }.to raise_exception(EasyPost::Error)
30
+ describe '#all' do
31
+ it 'retrieves all user created reports' do
32
+ report_1 = EasyPost::Report.create(
33
+ start_date: Date.today - 25,
34
+ end_date: Date.today,
35
+ type: TYPE
36
+ )
37
+
38
+ report_2 = EasyPost::Report.create(
39
+ start_date: Date.today - 29,
40
+ end_date: Date.today,
41
+ type: TYPE
42
+ )
43
+ reports = EasyPost::Report.all(type: TYPE)
44
+
45
+ expect(reports.count).to eq 2
46
+ end
75
47
  end
76
48
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easypost
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.2
4
+ version: 2.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sawyer Bateman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-14 00:00:00.000000000 Z
11
+ date: 2017-04-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client