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 +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +8 -1
- data/README.md +1 -1
- data/axiomus_api.gemspec +2 -0
- data/lib/axiomus_api/actions.rb +4 -1
- data/lib/axiomus_api/label.rb +53 -0
- data/lib/axiomus_api/request/status_list_request.rb +30 -0
- data/lib/axiomus_api/response/status_list_response.rb +33 -0
- data/lib/axiomus_api/response/version_response.rb +11 -0
- data/lib/axiomus_api/session.rb +20 -1
- data/lib/axiomus_api/templates/labels.html.erb +84 -0
- data/lib/axiomus_api/version.rb +1 -1
- data/lib/axiomus_api.rb +1 -0
- data/spec/factories.rb +19 -2
- data/spec/integration/lib/axiomus_api/session_spec.rb +18 -0
- data/spec/lib/axiomus_api/label_spec.rb +18 -0
- data/spec/lib/axiomus_api/session_spec.rb +15 -0
- data/spec/support/dummy_data.rb +28 -0
- metadata +36 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a842cb4e7a1790dad6bed6ea6a48f59758f28a1e
|
4
|
+
data.tar.gz: 7ed4a445f550a6832a95c893aadcf06e5a664849
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d370daaf919fc5144e01d4951ec32b39c2768758292a94672388793936a9602bfc59b7226c95f7daa6e9107df9ba196871926c861a368cba38b012c5f43f4c9
|
7
|
+
data.tar.gz: a82560e1fa501abe855e505119ee5770230cd258c718decb68fb519ce9b2acccd05e8bf3191849c6cb26eeab4d9fabdceb31333b6fc960cdacc528505de8f17b
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
axiomus_api (0.
|
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-
|
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
data/lib/axiomus_api/actions.rb
CHANGED
@@ -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
|
+
|
data/lib/axiomus_api/session.rb
CHANGED
@@ -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>
|
data/lib/axiomus_api/version.rb
CHANGED
data/lib/axiomus_api.rb
CHANGED
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
|
-
|
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
|
-
|
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
|
data/spec/support/dummy_data.rb
CHANGED
@@ -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.
|
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-
|
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
|