vncpost_api 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rspec.yml +47 -0
- data/README.md +2 -0
- data/bin/setup +5 -7
- data/lib/dev/config.rb +1 -1
- data/lib/vncpost_api/configuration.rb +9 -2
- data/lib/vncpost_api/resources/base.rb +5 -4
- data/lib/vncpost_api/resources/order.rb +1 -7
- data/lib/vncpost_api/resources/tracking.rb +17 -0
- data/lib/vncpost_api/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4711251bf2f83d6f27bc258c6a9c7190ba56a3743d078ffe11b97725fe58c640
|
4
|
+
data.tar.gz: 0d0febd554898baf313c4bfec8e5924be1424906de0a35a818e9fe3dc4566331
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 33a58c22000f60b09363337b5af981b7712722607b162e702a3ca1e3d8fe7d30a37c83a65a588b1d36d941cb0c848557bba536a23cd8f4f74189cebaccfb286c
|
7
|
+
data.tar.gz: cfe8e8dba531e438396b180c1ae0b4107aa095e77b561a5e1d31a100e371777b9765b1050705a5b12b8e6d3305a504bfa2f03b30c183bf23471a72695c66be0a
|
@@ -0,0 +1,47 @@
|
|
1
|
+
name: Rspec
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
env:
|
6
|
+
POSTGRES_USER: postgres
|
7
|
+
POSTGRES_PASSWORD: "postgres"
|
8
|
+
POSTGRES_DB: "postco_test"
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
rspec:
|
12
|
+
name: Rspec
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
strategy:
|
15
|
+
matrix:
|
16
|
+
ruby: ["2.5", "2.6", "2.7"]
|
17
|
+
fail-fast: true
|
18
|
+
steps:
|
19
|
+
- name: Checkout to repo
|
20
|
+
uses: actions/checkout@master
|
21
|
+
|
22
|
+
- name: Set up Ruby
|
23
|
+
uses: ruby/setup-ruby@v1
|
24
|
+
with:
|
25
|
+
ruby-version: ${{ matrix.ruby }}
|
26
|
+
|
27
|
+
- name: Cache ruby gems
|
28
|
+
uses: actions/cache@v1
|
29
|
+
with:
|
30
|
+
path: vendor/bundle
|
31
|
+
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
|
32
|
+
restore-keys: |
|
33
|
+
${{ runner.os }}-gems-
|
34
|
+
|
35
|
+
- name: Build gem
|
36
|
+
run: |
|
37
|
+
gem install bundler
|
38
|
+
bundle config path vendor/bundle
|
39
|
+
bundle install --jobs 4 --retry 3
|
40
|
+
|
41
|
+
- name: Run rspec tests
|
42
|
+
env:
|
43
|
+
VNCPOST_API_HOST: ${{secrets.VNCPOST_API_HOST}}
|
44
|
+
VNCPOST_USERNAME: ${{secrets.VNCPOST_USERNAME}}
|
45
|
+
VNCPOST_PASSWORD: ${{secrets.VNCPOST_PASSWORD}}
|
46
|
+
run: |
|
47
|
+
bundle exec rspec spec
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# VNCPostAPI
|
2
2
|
|
3
|
+
![Rspec](https://github.com/PostCo/vncpost_api/workflows/Rspec/badge.svg)
|
4
|
+
|
3
5
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/vncpost_api`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
6
|
|
5
7
|
TODO: Delete this and the text above, and describe your gem
|
data/bin/setup
CHANGED
@@ -7,11 +7,9 @@ bundle install
|
|
7
7
|
|
8
8
|
# Do any other automated setup that you need to do here
|
9
9
|
filename=".env"
|
10
|
-
if [ ! -f $filename ]
|
11
|
-
then
|
10
|
+
if [ ! -f $filename ]; then
|
12
11
|
touch $filename
|
13
|
-
echo "VNCPOST_API_HOST=http://tu.api.vncpost.com"
|
14
|
-
echo "VNCPOST_USERNAME=postco"
|
15
|
-
echo "VNCPOST_PASSWORD="
|
16
|
-
|
17
|
-
fi
|
12
|
+
echo "VNCPOST_API_HOST=http://tu.api.vncpost.com" >>$filename
|
13
|
+
echo "VNCPOST_USERNAME=postco" >>$filename
|
14
|
+
echo "VNCPOST_PASSWORD=" >>$filename
|
15
|
+
fi
|
data/lib/dev/config.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module VNCPostAPI
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :
|
3
|
+
attr_accessor :testing, :username, :password
|
4
|
+
alias_method :testing?, :testing
|
4
5
|
end
|
5
6
|
|
6
7
|
def self.config
|
@@ -14,6 +15,12 @@ module VNCPostAPI
|
|
14
15
|
def self.configure
|
15
16
|
yield config
|
16
17
|
# set the site once user configure
|
17
|
-
|
18
|
+
if config.testing?
|
19
|
+
VNCPostAPI::Base.site = "http://api.v3.vncpost.com"
|
20
|
+
VNCPostAPI::Tracking.site ="https://pt.v.vncpost.com"
|
21
|
+
else
|
22
|
+
VNCPostAPI::Base.site = "http://u.api.vncpost.com"
|
23
|
+
VNCPostAPI::Tracking.site = "https://pt.vncpost.com"
|
24
|
+
end
|
18
25
|
end
|
19
26
|
end
|
@@ -3,7 +3,6 @@ module VNCPostAPI
|
|
3
3
|
self.include_root_in_json = false
|
4
4
|
self.include_format_in_path = false
|
5
5
|
self.connection_class = VNCPostAPI::Connection
|
6
|
-
self.site = VNCPostAPI.config&.api_host
|
7
6
|
|
8
7
|
def create
|
9
8
|
self.class.retrieve_token
|
@@ -26,8 +25,9 @@ module VNCPostAPI
|
|
26
25
|
|
27
26
|
def self.retrieve_token
|
28
27
|
clear_auth_token
|
28
|
+
|
29
29
|
if VNCPostAPI.config&.username && VNCPostAPI.config&.password
|
30
|
-
response = connection.post("/User/Login", {
|
30
|
+
response = connection.post("#{Base.site}/User/Login", {
|
31
31
|
Username: VNCPostAPI.config.username,
|
32
32
|
Password: VNCPostAPI.config.password
|
33
33
|
}.to_json)
|
@@ -44,16 +44,17 @@ module VNCPostAPI
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def format_before_send_request
|
47
|
-
@attributes.
|
47
|
+
@attributes.deep_transform_keys!(&:camelcase)
|
48
48
|
end
|
49
49
|
|
50
50
|
def reset_attributes_format
|
51
|
-
@attributes.
|
51
|
+
@attributes.deep_transform_keys!(&:underscore)
|
52
52
|
end
|
53
53
|
|
54
54
|
def load_attributes_from_response(response)
|
55
55
|
super
|
56
56
|
reset_attributes_format
|
57
57
|
end
|
58
|
+
|
58
59
|
end
|
59
60
|
end
|
@@ -47,20 +47,14 @@ module VNCPostAPI
|
|
47
47
|
self.prefix = "/Order/Add"
|
48
48
|
self.element_name = ""
|
49
49
|
|
50
|
-
def self.track(code)
|
51
|
-
new(code: code).track
|
52
|
-
end
|
53
|
-
|
54
50
|
def initialize(attributes = {}, persisted = false)
|
55
51
|
attributes = DEFAULT_ATTRS.merge(attributes)
|
56
52
|
super
|
57
53
|
end
|
58
54
|
|
59
55
|
def track
|
60
|
-
puts "#track only available in production environment"
|
61
|
-
self.class.retrieve_token
|
62
56
|
tracking_number = @attributes[:returned_code] || @attributes[:code]
|
63
|
-
|
57
|
+
Tracking.find(tracking_number)
|
64
58
|
end
|
65
59
|
|
66
60
|
private
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module VNCPostAPI
|
2
|
+
class Tracking < Base
|
3
|
+
self.prefix = "/Track/Order"
|
4
|
+
self.element_name = ""
|
5
|
+
|
6
|
+
def self.find(code)
|
7
|
+
body = {
|
8
|
+
Code: code
|
9
|
+
}
|
10
|
+
|
11
|
+
self.retrieve_token
|
12
|
+
|
13
|
+
response = connection.post(collection_path, body.to_json)
|
14
|
+
new(self.format.decode(response.body).deep_transform_keys!(&:underscore))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/vncpost_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vncpost_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Chong
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activeresource
|
@@ -88,6 +88,7 @@ extensions: []
|
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
90
|
- ".byebug_history"
|
91
|
+
- ".github/workflows/rspec.yml"
|
91
92
|
- ".gitignore"
|
92
93
|
- ".rspec"
|
93
94
|
- ".travis.yml"
|
@@ -106,6 +107,7 @@ files:
|
|
106
107
|
- lib/vncpost_api/connection.rb
|
107
108
|
- lib/vncpost_api/resources/base.rb
|
108
109
|
- lib/vncpost_api/resources/order.rb
|
110
|
+
- lib/vncpost_api/resources/tracking.rb
|
109
111
|
- lib/vncpost_api/version.rb
|
110
112
|
- vncpost_api.gemspec
|
111
113
|
homepage: https://github.com/PostCo/vncpost_api
|
@@ -131,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
133
|
- !ruby/object:Gem::Version
|
132
134
|
version: '0'
|
133
135
|
requirements: []
|
134
|
-
rubygems_version: 3.
|
136
|
+
rubygems_version: 3.0.3
|
135
137
|
signing_key:
|
136
138
|
specification_version: 4
|
137
139
|
summary: Ruby object based VNCPost API wrapper.
|