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