axiomus_api 0.2 → 0.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: 01b9bba2a5f6c2a80077adee2f7618cdb3012285
4
- data.tar.gz: f0168adfc8ec11167ecf7b9762d493884774f479
3
+ metadata.gz: a842cb4e7a1790dad6bed6ea6a48f59758f28a1e
4
+ data.tar.gz: 7ed4a445f550a6832a95c893aadcf06e5a664849
5
5
  SHA512:
6
- metadata.gz: 1f2d713c2bbaf5c984198dcd53686ce7694842176c78e7308a7278833c1d3ea6d38b4d155abe2a68d44577840bf4c60470c4fa6bdf51d0f44c8c980fa66597f7
7
- data.tar.gz: 76a55fe55d9b7dad0a4a9cb81c5e8036127d36523324e8694ed5a35a78079563fbadb26e985f85ea5a24ba781d4664c6ec51e7df22f274748b23642931cd9f9d
6
+ metadata.gz: 0d370daaf919fc5144e01d4951ec32b39c2768758292a94672388793936a9602bfc59b7226c95f7daa6e9107df9ba196871926c861a368cba38b012c5f43f4c9
7
+ data.tar.gz: a82560e1fa501abe855e505119ee5770230cd258c718decb68fb519ce9b2acccd05e8bf3191849c6cb26eeab4d9fabdceb31333b6fc960cdacc528505de8f17b
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  /vendor/bundle
4
4
  /coverage
5
5
  .coveralls.yml
6
+ /*.gem
data/Gemfile CHANGED
@@ -6,4 +6,5 @@ group :test do
6
6
  gem 'rspec'
7
7
  gem 'coveralls', require: false
8
8
  gem 'factory_girl', '~> 4.0'
9
+ gem 'faker'
9
10
  end
data/Gemfile.lock CHANGED
@@ -1,7 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- axiomus_api (0.2)
4
+ axiomus_api (0.3)
5
+ barby (~> 0.5.0)
6
+ chunky_png (~> 1.3.0)
5
7
  nokogiri (~> 1.6)
6
8
 
7
9
  GEM
@@ -14,6 +16,8 @@ GEM
14
16
  thread_safe (~> 0.1)
15
17
  tzinfo (~> 0.3.37)
16
18
  atomic (1.1.16)
19
+ barby (0.5.1)
20
+ chunky_png (1.3.0)
17
21
  coveralls (0.7.0)
18
22
  multi_json (~> 1.3)
19
23
  rest-client
@@ -24,6 +28,8 @@ GEM
24
28
  docile (1.1.3)
25
29
  factory_girl (4.4.0)
26
30
  activesupport (>= 3.0.0)
31
+ faker (1.3.0)
32
+ i18n (~> 0.5)
27
33
  i18n (0.6.9)
28
34
  mime-types (2.2)
29
35
  mini_portile (0.5.3)
@@ -61,4 +67,5 @@ DEPENDENCIES
61
67
  axiomus_api!
62
68
  coveralls
63
69
  factory_girl (~> 4.0)
70
+ faker
64
71
  rspec
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  This is a Ruby wrapper over [Axiomus](http://www.axiomus.ru "axiomus.ru") delivery service public [API](http://www.axiomus.ru/customers/api/ "Axiomus API").
12
12
 
13
- All methods exposed by the API by 2014-03-30 are implemented.
13
+ All methods exposed by the API by 2014-04-04 are implemented.
14
14
 
15
15
  ## Installation
16
16
 
data/axiomus_api.gemspec CHANGED
@@ -16,4 +16,6 @@ Gem::Specification.new do |s|
16
16
  s.require_paths = ["lib"]
17
17
 
18
18
  s.add_dependency('nokogiri', '~>1.6')
19
+ s.add_dependency('barby', '~>0.5')
20
+ s.add_dependency('chunky_png', '~>1.3')
19
21
  end
@@ -1,6 +1,7 @@
1
1
  require_relative('request/request')
2
2
  require_relative('request/order_request')
3
3
  require_relative('request/status_request')
4
+ require_relative('request/status_list_request')
4
5
 
5
6
  module AxiomusApi::Actions
6
7
  ACTIONS = {
@@ -23,7 +24,9 @@ module AxiomusApi::Actions
23
24
  update_region_courier: AxiomusApi::OrderRequest,
24
25
  new_region_pickup: AxiomusApi::OrderRequest,
25
26
  update_region_pickup: AxiomusApi::OrderRequest,
26
- status: AxiomusApi::StatusRequest
27
+ status: AxiomusApi::StatusRequest,
28
+ status_list: AxiomusApi::StatusListRequest,
29
+ get_version: AxiomusApi::Request
27
30
  }
28
31
 
29
32
  def create_request(mode)
@@ -0,0 +1,53 @@
1
+ require 'barby'
2
+ require 'barby/barcode/code_39'
3
+ require 'barby/outputter/png_outputter'
4
+ require 'base64'
5
+ require 'erb'
6
+
7
+ class AxiomusApi::Label
8
+ attr_accessor :dispatch_number
9
+ attr_accessor :order_id
10
+ attr_accessor :client_name
11
+ attr_accessor :weight
12
+ attr_accessor :date
13
+ attr_accessor :b_time
14
+ attr_accessor :e_time
15
+ attr_accessor :place
16
+ attr_accessor :places
17
+ attr_accessor :address
18
+ attr_accessor :type
19
+ attr_accessor :city
20
+
21
+ def dispatch_number_formatted
22
+ dispatch_number.to_s.gsub(/(....)$/, '`\1')
23
+ end
24
+
25
+ def barcode_raw(height = 70)
26
+ barcode = Barby::Code39.new("#{dispatch_number}+#{place}")
27
+ barcode.wide_width = 3
28
+ Base64.encode64(barcode.to_png(height: height, margin: 0))
29
+ end
30
+
31
+ def barcode_base64(height = 70)
32
+ s = barcode_raw(height)
33
+ "data:image/png;base64,#{s}"
34
+ end
35
+
36
+ def self.render(labels, template = nil)
37
+ renderer = ERB.new(template || default_template)
38
+ labels = labels.is_a?(Array) ? labels : [labels]
39
+ @labels = labels.select{|l| l.is_a?(AxiomusApi::Label)}
40
+ renderer.result(binding)
41
+ end
42
+
43
+ private
44
+
45
+ def self.default_template
46
+ File.read(default_erb)
47
+ end
48
+
49
+ def self.default_erb
50
+ File.join(File.dirname(File.expand_path(__FILE__)), 'templates/labels.html.erb')
51
+ end
52
+
53
+ end
@@ -0,0 +1,30 @@
1
+ require_relative 'request'
2
+
3
+ class AxiomusApi::StatusListRequest < AxiomusApi::Request
4
+ class Okey < ::AxiomusApi::Base
5
+ xml_field :value, xml_type: :text
6
+ end
7
+
8
+ class Okeylist < ::AxiomusApi::Base
9
+ xml_field_array :okey, type: Okey
10
+
11
+ def add_okey(okey)
12
+ n_okey = Okey.new
13
+ n_okey.value = okey
14
+ (@okey ||= []) << n_okey
15
+ end
16
+ end
17
+
18
+ xml_field :okeylist
19
+
20
+ def initialize
21
+ @okeylist = Okeylist.new
22
+ end
23
+
24
+ def okeys=(value)
25
+ okeys = value.is_a?(Array) ? value : [value]
26
+ okeys.each do |o|
27
+ @okeylist.add_okey(o.to_s)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,33 @@
1
+ require 'nokogiri'
2
+
3
+ class AxiomusApi::StatusListResponse
4
+ class Okey
5
+ attr_accessor :id
6
+ attr_accessor :status_code
7
+ attr_accessor :status_name
8
+ attr_accessor :inner_id
9
+ attr_accessor :price
10
+ attr_accessor :customer_price
11
+ attr_accessor :value
12
+
13
+ def initialize(xml_node)
14
+ @id = xml_node.xpath('@id').text
15
+ @status_code = xml_node.xpath('@status_code').text
16
+ @status_name = xml_node.xpath('@status_name').text
17
+ @inner_id = xml_node.xpath('@inner_id').text
18
+ @price = xml_node.xpath('@price').text.to_f
19
+ @customer_price = xml_node.xpath('@customer_price').text.to_f
20
+ @value = xml_node.text
21
+ end
22
+ end
23
+
24
+ attr_accessor :okeys
25
+
26
+ def initialize(xml)
27
+ doc = Nokogiri::XML(xml)
28
+ @okeys = doc.xpath('/response/okeylist/okey').map do |node|
29
+ Okey.new(node)
30
+ end
31
+ end
32
+ end
33
+
@@ -0,0 +1,11 @@
1
+ require 'nokogiri'
2
+
3
+ class AxiomusApi::VersionResponse
4
+ attr_accessor :version
5
+
6
+ def initialize(xml)
7
+ doc = Nokogiri::XML(xml)
8
+ @version = doc.xpath('/response/version').text
9
+ end
10
+ end
11
+
@@ -2,6 +2,8 @@ require 'net/http'
2
2
  require_relative 'actions'
3
3
  require_relative 'response/regions_response'
4
4
  require_relative 'response/status_response'
5
+ require_relative 'response/status_list_response'
6
+ require_relative 'response/version_response'
5
7
  require_relative 'response/order_response'
6
8
 
7
9
  class AxiomusApi::Session
@@ -45,6 +47,23 @@ class AxiomusApi::Session
45
47
  status_response
46
48
  end
47
49
 
50
+ def status_list(okeys)
51
+ xml_request = create_request(:status_list)
52
+ xml_request.auth = nil
53
+ xml_request.okeys = okeys
54
+ response = send_request(xml_request)
55
+ status_response = AxiomusApi::StatusListResponse.new(response.body)
56
+ status_response
57
+ end
58
+
59
+ def get_version
60
+ xml_request = create_request(:get_version)
61
+ xml_request.auth = nil
62
+ response = send_request(xml_request)
63
+ version_response = AxiomusApi::VersionResponse.new(response.body)
64
+ version_response.version
65
+ end
66
+
48
67
  def send_order_request(mode, order)
49
68
  if(!order.valid?)
50
69
  error_msg = order.validation_errors.join('\n')
@@ -82,7 +101,7 @@ class AxiomusApi::Session
82
101
  connection = Net::HTTP.new(AxiomusApi::AXIOMUS_HOST, AxiomusApi::AXIOMUS_PORT)
83
102
  http_request = get_http_request(xml_request)
84
103
  logger.info("Request to #{xml_request.mode}")
85
- logger.debug("Request body: #{xml_request.to_xml}")
104
+ logger.debug("Request body: #{xml_request.to_xml(true)}")
86
105
  response = connection.request(http_request)
87
106
  logger.info("Response: #{response.code}")
88
107
  logger.debug("Response raw: #{response.body}")
@@ -0,0 +1,84 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Ярлыки Axiomus</title>
5
+ <meta charset="utf-8"/>
6
+ <style type="text/css" media="all">
7
+ body {padding: 0; margin: 0; width: 200mm; font-family: Arial, Tahoma, Verdana, Helvetica, sans-serif; font-weight: bold;}
8
+ @page {margin: 0;}
9
+ div {float: left; overflow: hidden;}
10
+ .label {height: 55.3mm; width: 98mm;/*этикетка размером 59.4x105mm 10шт*/border: 1px solid #000;}
11
+ .bb { margin: 4mm 2mm;}
12
+ .d1 {height: 17mm; width: 57mm; padding-left: 3mm;}
13
+
14
+ .d1n {height: 8mm; width: 57mm; font-size: 23pt; }
15
+ .d2n {height: 4mm; width: 53mm; text-align:right;font: normal 9pt Arial, Times, Georgia, serif !important;} /*53mm !*/
16
+ .d1cu {height: 4mm; width: 57mm; }
17
+
18
+ .d2 {height: 16mm; width: 30.5mm; font-weight: normal; font-size: 18pt; text-align: right; line-height: 23pt;}
19
+ .d3 {height: 10mm; width: 88mm; font: normal 12pt Times, Georgia, serif; text-align: right;}
20
+ .d3-2 {height: 10mm; width: 88mm; font: normal 12pt Times, Georgia, serif;}
21
+
22
+ .d2, .d3-2, .d8-2, .d8 {border-bottom: 0.5mm solid #777;}
23
+ .d3, .d3-2, .d8-1, .d8-2 {color: #555;}
24
+ .cu {font: normal 10pt Arial, Times, Georgia, serif; line-height: 10pt;}
25
+ .cnum {text-align:right;font: normal 10pt Arial, Times, Georgia, serif !important;}
26
+ .con {font: normal 13pt Times, Georgia, serif;}
27
+ .time {font-weight: normal; font-size: 14pt;}
28
+
29
+ .d4 {height: 12mm; width: 32mm;}
30
+ .d5 {height: 12mm; width: 19mm; font-size: 14pt;}
31
+ .d6 {height: 12mm; width: 16mm; font-size: 16pt;}
32
+ .d7 {height: 12mm; width: 28mm; font-size: 25pt;}
33
+ .d1, .d4, .d5, .d6, .d8 {border-right: 0.5mm solid #777;}
34
+ .d4, .d5, .d6, .d7 {text-align: center; line-height: 40pt;}
35
+
36
+ .d8-1 {height: 10mm; width: 65mm; font: normal 12pt Times, Georgia, serif; text-align: right;}
37
+ .d8-2 {padding:0 0 0 3;height: 10mm; width: 65mm; font: normal 11pt Times, Georgia, serif;}
38
+ .d8 {height: 16mm;width: 22.5mm; line-height: 23pt;font-weight: normal; font-size: 21pt;text-align: center;padding-top: 4mm;}
39
+ .d9 {height: 9mm; width:24.5mm; font-weight: normal; font-size: 21pt;text-align: center;padding-top: 3mm;border-right: 0.5mm solid #777;}
40
+ .d10 {height: 20mm;width: 60mm; border-right: 0.5mm solid #777; border-bottom: 0.5mm solid #777; text-align:center;}
41
+ .d11 {height: 20mm; width: 30mm; font: normal 10pt Arial, Georgia, serif; text-align: right;border-bottom: 0.5mm solid #777;}
42
+
43
+ #bundl {font: bold 20pt Arial, Tahoma, Verdana, Helvetica, sans-serif; line-height: 40pt;}
44
+
45
+
46
+ #close { text-align: center; display: block; width: 150px; font: bold 16px Arial, Tahoma, Verdana, Helvetica, sans-serif; color: #036; border: 2px solid #eee; padding: 3px 10px 3px 3px; background: #FFEAEA; text-decoration: none; margin-top: 10px;}
47
+ #close:hover {color: #777; background: #eee;}
48
+ #close img {padding: 0; margin: 3px 7px; vertical-align: middle; border: none;}
49
+
50
+
51
+ @media print {
52
+ #close {display: none;}
53
+ .page_brake {page-break-before: always; padding: 0px; margin: 0px;}
54
+ </style>
55
+ </head>
56
+ <body>
57
+ <% @labels.each do |label| %>
58
+ <div class="label">
59
+ <div class="bb">
60
+ <div class="d1">
61
+ <div class="d1n"><%= label.dispatch_number_formatted %></div>
62
+ <div class="d2n">(<%= label.order_id %>)</div>
63
+ <div class="d1cu">
64
+ <span class="cu"><%= label.client_name %></span>
65
+ </div>
66
+ </div>
67
+ <div class="d2">
68
+ <b><%= label.date.strftime('%d.%m.%y') %></b>
69
+ <br/>
70
+ <span class="time"><%= label.b_time %>-<%= label.e_time %></span>
71
+ </div>
72
+ <div class="d10">
73
+ <img src='<%= label.barcode_base64 %>'/>
74
+ </div>
75
+ <div class="d11"><%= label.address %></div>
76
+ <div class="d9"><b><i><%= label.weight.round(1) %></i></b><span class="cu"> кг</span></div>
77
+ <div class="d5"><%= label.type %></div>
78
+ <div class="d6"><%= label.city %></div>
79
+ <div class="d7"><%= label.place %>/<%= label.places %></div>
80
+ </div>
81
+ </div>
82
+ <% end %>
83
+ </body>
84
+ </html>
@@ -1,3 +1,3 @@
1
1
  module AxiomusApi
2
- VERSION = '0.2'
2
+ VERSION = '0.3'
3
3
  end
data/lib/axiomus_api.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'logger'
2
2
 
3
3
  module AxiomusApi
4
+ AXIOMUS_API_VERSION = '2.12'
4
5
  AXIOMUS_PROD_PATH = '/hydra/api_xml.php'
5
6
  AXIOMUS_TEST_PATH = '/test/api_xml_test.php'
6
7
  AXIOMUS_HOST = 'axiomus.ru'
data/spec/factories.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  #coding: utf-8
2
+ require('faker')
2
3
 
3
4
  FactoryGirl.define do
4
5
  sequence :inner_id do |n|
@@ -80,10 +81,11 @@ FactoryGirl.define do
80
81
  end
81
82
 
82
83
  factory :base_order, class: AxiomusApi::BaseOrder do
83
- contacts 'John Galt'
84
+ name {Faker::Name.name}
85
+ contacts {name}
84
86
  description 'Awesome description'
85
87
  inner_id {rand(1..2)==2 ? generate(:inner_id) : nil}
86
- name 'John Galt'
88
+
87
89
 
88
90
  trait :has_okey do
89
91
  okey '2e3023c3e78f4f0c8cbb81257743c2d7'
@@ -236,4 +238,19 @@ FactoryGirl.define do
236
238
  end
237
239
  end
238
240
 
241
+ factory :label, class: AxiomusApi::Label do
242
+ dispatch_number {rand(2300000..2400000)}
243
+ order_id {rand(20000..60000)}
244
+ client_name {Faker::Company.name}
245
+ weight {rand(0.1..10.0)}
246
+ date {(Time.now + rand(1..10)*24*60*60)}
247
+ b_time {rand(10..17)}
248
+ e_time {b_time + 1}
249
+ places {rand(1..3)}
250
+ place {rand(1..places)}
251
+ address {"#{Faker::Address.postcode} #{Faker::Address.city}, #{Faker::Address.street_address}"}
252
+ type {['Д', 'C', 'Р'][rand(0..2)]}
253
+ city {['Мск', 'Спб'][rand(0..1)]}
254
+ end
255
+
239
256
  end
@@ -13,6 +13,24 @@ describe 'AxiomusApi::Sesion' do
13
13
  end
14
14
  end
15
15
 
16
+ # describe '#status_list' do
17
+ # it 'should handle multiple okeys' do
18
+ # order = build(:order)
19
+ # z1 = @session.new(order)
20
+ # order = build(:order)
21
+ # z2 = @session.new(order)
22
+ # r = @session.status_list([z1.okey, z2.okey])
23
+ # puts r
24
+ # end
25
+ # end
26
+
27
+ # describe '#get_version' do
28
+ # it 'should return version' do
29
+ # version = @session.get_version
30
+ # puts version
31
+ # end
32
+ # end
33
+
16
34
  describe '#new, #update' do
17
35
  it 'should create new order and update it' do
18
36
  order = build(:order)
@@ -0,0 +1,18 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe 'AxiomusApi::Label' do
4
+ it 'should generate barcode' do
5
+ @label = build(:label)
6
+ expect{barcode = @label_barcode64}.not_to raise_error
7
+ end
8
+
9
+ it 'should render single label' do
10
+ @label = build(:label)
11
+ expect{html = AxiomusApi::Label.render(@label)}.not_to raise_error
12
+ end
13
+
14
+ it 'should render multiple labels' do
15
+ @labels = (1..10).map{build(:label)}
16
+ expect{html = AxiomusApi::Label.render(@labels)}.not_to raise_error
17
+ end
18
+ end
@@ -46,6 +46,21 @@ describe 'AxiomusApi::Session' do
46
46
  end
47
47
  end
48
48
 
49
+ describe '#status_list' do
50
+ it 'should handle successfull request' do
51
+ HttpMocking.enqueue_response(DummyData::STATUS_LIST_SUCCESS_RESPONSE)
52
+ z = @session.status_list(['7bbf66349060b723bba20ef687ee4ebf', 'f2c2635a00310d39cf26b7cc1db6fab2'])
53
+ end
54
+ end
55
+
56
+ describe '#get_version' do
57
+ it 'should handle successfull request' do
58
+ HttpMocking.enqueue_response(DummyData::GET_VERSION_SUCCESS_RESPONSE)
59
+ z = @session.get_version
60
+ expect(z).to eq('2.12')
61
+ end
62
+ end
63
+
49
64
  it 'should accept a block' do
50
65
  HttpMocking.enqueue_response(DummyData::REGIONS_SUCCESS_RESPONSE)
51
66
  res = nil
@@ -58,4 +58,32 @@ module DummyData
58
58
  </response>
59
59
  XML
60
60
 
61
+ STATUS_LIST_SUCCESS_RESPONSE = <<-XML
62
+ <?xml version="1.0" encoding="utf-8" ?>
63
+ <response>
64
+ <request>status_list</request>
65
+ <okeylist>
66
+ <okey id="1180901"
67
+ status_code="100"
68
+ status_name="выполнен"
69
+ inner_id="Заказ #878"
70
+ price="406.02"
71
+ customer_price="430.00">7bbf66349060b723bba20ef687ee4ebf</okey>
72
+ <okey id="1991064"
73
+ status_code="100"
74
+ status_name="выполнен"
75
+ inner_id="" price="0.00"
76
+ customer_price="">f2c2635a00310d39cf26b7cc1db6fab2</okey>
77
+ </okeylist>
78
+ </response>
79
+ XML
80
+
81
+ GET_VERSION_SUCCESS_RESPONSE = <<-XML
82
+ <?xml version="1.0" encoding="utf-8" ?>
83
+ <response>
84
+ <request>get_version</request>
85
+ <version>2.12</version>
86
+ </response>
87
+ XML
88
+
61
89
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axiomus_api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kinderly LTD
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-04 00:00:00.000000000 Z
11
+ date: 2014-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: barby
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.5'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.5'
41
+ - !ruby/object:Gem::Dependency
42
+ name: chunky_png
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
27
55
  description: This gem provides a Ruby wrapper over Axiomus API.
28
56
  email:
29
57
  - nuinuhin@gmail.com
@@ -56,6 +84,7 @@ files:
56
84
  - lib/axiomus_api/item/item.rb
57
85
  - lib/axiomus_api/items/export_items.rb
58
86
  - lib/axiomus_api/items/items.rb
87
+ - lib/axiomus_api/label.rb
59
88
  - lib/axiomus_api/order/base_order.rb
60
89
  - lib/axiomus_api/order/carry_order.rb
61
90
  - lib/axiomus_api/order/dpd_order.rb
@@ -69,10 +98,13 @@ files:
69
98
  - lib/axiomus_api/order/self_export_order.rb
70
99
  - lib/axiomus_api/request/order_request.rb
71
100
  - lib/axiomus_api/request/request.rb
101
+ - lib/axiomus_api/request/status_list_request.rb
72
102
  - lib/axiomus_api/request/status_request.rb
73
103
  - lib/axiomus_api/response/order_response.rb
74
104
  - lib/axiomus_api/response/regions_response.rb
105
+ - lib/axiomus_api/response/status_list_response.rb
75
106
  - lib/axiomus_api/response/status_response.rb
107
+ - lib/axiomus_api/response/version_response.rb
76
108
  - lib/axiomus_api/response_codes.rb
77
109
  - lib/axiomus_api/serializable.rb
78
110
  - lib/axiomus_api/services/export_services.rb
@@ -80,12 +112,14 @@ files:
80
112
  - lib/axiomus_api/services/region_services.rb
81
113
  - lib/axiomus_api/services/services.rb
82
114
  - lib/axiomus_api/session.rb
115
+ - lib/axiomus_api/templates/labels.html.erb
83
116
  - lib/axiomus_api/validated.rb
84
117
  - lib/axiomus_api/version.rb
85
118
  - spec/factories.rb
86
119
  - spec/integration/lib/axiomus_api/session_spec.rb
87
120
  - spec/lib/axiomus_api/base_spec.rb
88
121
  - spec/lib/axiomus_api/delivest_spec.rb
122
+ - spec/lib/axiomus_api/label_spec.rb
89
123
  - spec/lib/axiomus_api/order/base_order_spec.rb
90
124
  - spec/lib/axiomus_api/serializable_spec.rb
91
125
  - spec/lib/axiomus_api/session_spec.rb