snap-api 0.1.1 → 0.1.2
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/History.md +8 -0
- data/lib/snap/api/shipment_status.rb +18 -0
- data/lib/snap/api/shipments.rb +4 -0
- data/lib/snap/client.rb +28 -0
- data/lib/snap/models/shipment.rb +10 -1
- data/lib/snap/models/shipment_line.rb +45 -0
- data/lib/snap/models/shipment_status.rb +12 -0
- data/lib/snap/response.rb +16 -0
- data/lib/snap/version.rb +1 -1
- data/lib/snap.rb +6 -0
- data/snap.gemspec +1 -0
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36cecbcd40e05247522d1c72c79ae4f3efebbd53b59d43ff4075bb8dfe618ae9
|
4
|
+
data.tar.gz: f7b38ee2036e287667c2511bfceb112bc153f8917cff206601e19d37f849dfc2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28c1df861559b42870d2550a35580fa51639a63d476cef6a527a44f882613805cbc03f7efde68a1e898b04ebf3649c950aaa01e8565b9fc9ff707469776318bc
|
7
|
+
data.tar.gz: 53a198dc56fe9131bdddf27c12babfcb0fd2171727ad978800559944354b78e5775930a2f2be031ea7d92283730ce3004c470196b2fe58b046581c0ff63c574d
|
data/History.md
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
module Snap
|
2
|
+
module Api
|
3
|
+
# Interact with Snapfulfil's shipment status endpoint.
|
4
|
+
class ShipmentStatus
|
5
|
+
include ::HTTParty
|
6
|
+
extend Client
|
7
|
+
|
8
|
+
def self.update(options)
|
9
|
+
shipment_status = Snap::ShipmentStatus.new(options)
|
10
|
+
client.put("/shipmentstatus/#{shipment_status.ShipmentId}", body: shipment_status)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.model
|
14
|
+
Snap::ShipmentStatus
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/snap/api/shipments.rb
CHANGED
data/lib/snap/client.rb
CHANGED
@@ -8,5 +8,33 @@ module Snap
|
|
8
8
|
basic_auth(Snap.config.username, Snap.config.password)
|
9
9
|
self
|
10
10
|
end
|
11
|
+
|
12
|
+
def get(*args, &block)
|
13
|
+
wrap_response do
|
14
|
+
super(*args, &block)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def post(*args, &block)
|
19
|
+
wrap_response do
|
20
|
+
super(*args, &block)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def delete(*args, &block)
|
25
|
+
wrap_response do
|
26
|
+
super(*args, &block)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def put(*args, &block)
|
31
|
+
wrap_response do
|
32
|
+
super(*args, &block)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def wrap_response
|
37
|
+
Snap::Response.new(yield, model)
|
38
|
+
end
|
11
39
|
end
|
12
40
|
end
|
data/lib/snap/models/shipment.rb
CHANGED
@@ -3,6 +3,13 @@ module Snap
|
|
3
3
|
# A representation of a Snap Shipment object.
|
4
4
|
class Shipment < Hashie::Dash
|
5
5
|
include Hashie::Extensions::IndifferentAccess
|
6
|
+
include Hashie::Extensions::Dash::Coercion
|
7
|
+
include ActiveModel::Validations
|
8
|
+
|
9
|
+
def initialize(*args)
|
10
|
+
super(*args)
|
11
|
+
validate!
|
12
|
+
end
|
6
13
|
|
7
14
|
property :ShipmentId, required: true
|
8
15
|
property :BizId
|
@@ -85,10 +92,12 @@ module Snap
|
|
85
92
|
property :OverdueInd
|
86
93
|
property :Stage
|
87
94
|
property :MaintInd
|
88
|
-
property :ShipmentLines
|
95
|
+
property :ShipmentLines, coerce: Array[Models::ShipmentLine]
|
89
96
|
property :ShipAddress
|
90
97
|
property :ShipContacts
|
91
98
|
property :ShipmentDespatch
|
99
|
+
|
100
|
+
validates :CustomerName, length: { maximum: 50 }
|
92
101
|
end
|
93
102
|
end
|
94
103
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module Snap
|
2
|
+
module Models
|
3
|
+
# A representation of a single ShipmentLine.
|
4
|
+
class ShipmentLine < Hashie::Dash
|
5
|
+
include Hashie::Extensions::IndifferentAccess
|
6
|
+
|
7
|
+
property :ShipmentId, required: true
|
8
|
+
property :Line
|
9
|
+
property :Level
|
10
|
+
property :SKUId, required: true
|
11
|
+
property :BizSKU
|
12
|
+
property :LineOwner
|
13
|
+
property :LineStockStatus
|
14
|
+
property :QtyOrdered, required: true
|
15
|
+
property :QtyRequired, required: true
|
16
|
+
property :QtyAllocated
|
17
|
+
property :QtyTasked
|
18
|
+
property :UnitOfMeasure, required: true
|
19
|
+
property :QtyPicked
|
20
|
+
property :QtyShipped
|
21
|
+
property :QtyDelivered
|
22
|
+
property :QtyDueOut
|
23
|
+
property :Price, required: true
|
24
|
+
property :Discount
|
25
|
+
property :TaxRate
|
26
|
+
property :SOLineId
|
27
|
+
property :ReturnReason
|
28
|
+
property :QC
|
29
|
+
property :Shortage
|
30
|
+
property :Variance
|
31
|
+
property :BOInd
|
32
|
+
property :ConsignmentId
|
33
|
+
property :PickGroupId
|
34
|
+
property :SiteId
|
35
|
+
property :Warehouse
|
36
|
+
property :BizId
|
37
|
+
property :OwnerId
|
38
|
+
property :StockStatus
|
39
|
+
property :DateShipment
|
40
|
+
property :AttachmentInd
|
41
|
+
property :SpecialConditionInd
|
42
|
+
property :Stage
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Snap
|
2
|
+
module Models
|
3
|
+
# A representation of a Shipment Status.
|
4
|
+
class ShipmentStatus < Hashie::Dash
|
5
|
+
include Hashie::Extensions::IndifferentAccess
|
6
|
+
|
7
|
+
property :ShipmentId, required: true
|
8
|
+
property :Status, required: true
|
9
|
+
property :Stage
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'delegate'
|
2
|
+
|
3
|
+
module Snap
|
4
|
+
# Wraps HTTParty response so we can provide some helpful methods.
|
5
|
+
class Response < SimpleDelegator
|
6
|
+
def initialize(response, model)
|
7
|
+
@model = model
|
8
|
+
super(response)
|
9
|
+
end
|
10
|
+
attr_reader :model
|
11
|
+
|
12
|
+
def hydrate
|
13
|
+
model.new(to_hash)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/snap/version.rb
CHANGED
data/lib/snap.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
|
+
require 'active_model'
|
1
2
|
require 'hashie'
|
2
3
|
require 'httparty'
|
3
4
|
|
4
5
|
require 'snap/version'
|
5
6
|
require 'snap/client'
|
7
|
+
require 'snap/response'
|
6
8
|
|
9
|
+
require 'snap/api/shipment_status'
|
7
10
|
require 'snap/api/shipments'
|
11
|
+
|
12
|
+
require 'snap/models/shipment_status'
|
13
|
+
require 'snap/models/shipment_line'
|
8
14
|
require 'snap/models/shipment'
|
9
15
|
|
10
16
|
# Top level module for the Snap gem.
|
data/snap.gemspec
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snap-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Hood
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-09-
|
11
|
+
date: 2018-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activemodel
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.1'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: hashie
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,9 +199,13 @@ files:
|
|
185
199
|
- bin/setup
|
186
200
|
- config/initializers/snap.rb
|
187
201
|
- lib/snap.rb
|
202
|
+
- lib/snap/api/shipment_status.rb
|
188
203
|
- lib/snap/api/shipments.rb
|
189
204
|
- lib/snap/client.rb
|
190
205
|
- lib/snap/models/shipment.rb
|
206
|
+
- lib/snap/models/shipment_line.rb
|
207
|
+
- lib/snap/models/shipment_status.rb
|
208
|
+
- lib/snap/response.rb
|
191
209
|
- lib/snap/version.rb
|
192
210
|
- snap.gemspec
|
193
211
|
homepage: https://github.com/MeUndies/snap
|