axiomus_api 0.2 → 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: 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