easypost 2.6.2 → 2.7.0

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