pwinty 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e2d69fca32fe28bbe4ed607577ebae56276c63b
4
- data.tar.gz: 71683c3aec6864253728421f3aad4c0848bea4cf
3
+ metadata.gz: 7ba48de731456c5d3e1711ccb6948341e7be0f8a
4
+ data.tar.gz: 7961236e86238b56f33db744a1fceea1f9256e51
5
5
  SHA512:
6
- metadata.gz: c7ade263209666875e70958004b94adddd09a50b73ddcecbce7d25c272450f03561c484fecc35256ac52efd86a9d300390d83614870a91ff261af72bad147bf8
7
- data.tar.gz: 25b59d9c7fbc884b0520dc7c0b4a6004e5fd76e86e327785e878cbd252b0a10426a90d5ac544256791cf30567d8ea9b99e691cc5ba062e4f6c3ceabd0e9fe473
6
+ metadata.gz: 13a333e0985076382c190a99c6303359e4abeaa41cc85f478d9165b938b85d634d7dbe57ebf57390dd7315c847d80b31e9a483f697b0c396cd1b9b353e4c2c61
7
+ data.tar.gz: 174157a41d6818447e52bfaa2df9d917d2db388629f09d311e4d4e75e3433250563ba943cc96c4db6ddda8ab8b9742ad7d4b1b1aeb67e67b999f6cd9671fc2ac
@@ -0,0 +1,10 @@
1
+ ## 1.1.0 (2016-12-26)
2
+
3
+ * Add support for adding photos in a batch (Thanks @bumi!)
4
+ * Support for configurable Pwinty API versions (Thanks @bumi!)
5
+ * Added support for passing client credentials as arguments instead of ENV variables (Thanks @bumi!)
6
+
7
+
8
+ ## 1.0.1 (2015-04-10)
9
+
10
+ * Create a working Pwinty client with [rest-client](https://github.com/rest-client/rest-client)
@@ -0,0 +1,18 @@
1
+ ## Getting Involved
2
+
3
+ New contributors are always welcome, when it doubt please ask questions. We strive to be an open and welcoming community. Please be nice to one another.
4
+
5
+ ### Coding
6
+
7
+ * Pick a task:
8
+ * Offer feedback on open [pull requests](https://github.com/dereklucas/pwinty/pulls).
9
+ * Review open [issues](https://github.com/dereklucas/pwinty/issues) for things to help on.
10
+ * [Create an issue](https://github.com/dereklucas/pwinty/issues/new) to start a discussion on additions or features.
11
+ * Fork the project, add your changes and tests to cover them in a topic branch.
12
+ * Commit your changes and rebase against `dereklucas/pwinty` to ensure everything is up to date.
13
+ * [Submit a pull request](https://github.com/dereklucas/pwinty/compare/)
14
+
15
+ ### Non-Coding
16
+
17
+ * Offer feedback on open [issues](https://github.com/dereklucas/pwinty/issues).
18
+ * Organize or volunteer at events.
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  This library implements a Ruby client for the [Pwinty photo printing API](http://www.pwinty.com/Api).
4
4
 
5
+ While I consider this to be feature complete (it's the only Ruby Pwinty client that can `POST` photos as well as send photo URLs), I do want to hear if there are issues.
6
+
5
7
  Documentation
6
8
  -------------
7
9
 
@@ -83,3 +85,4 @@ More Information
83
85
 
84
86
  * [Rubygems](https://rubygems.org/gems/pwinty)
85
87
  * [Issues](https://github.com/dereklucas/pwinty/issues)
88
+ * Follows [SemVer](http://semver.org)
@@ -4,19 +4,22 @@ require "rest_client"
4
4
 
5
5
  module Pwinty
6
6
 
7
- def self.client
8
- @@client ||= Pwinty::Client.new
7
+ def self.client(args={})
8
+ @@client ||= Pwinty::Client.new(args)
9
9
  @@client
10
10
  end
11
11
 
12
12
  class Client
13
- def initialize
14
- subdomain = ENV['PWINTY_PRODUCTION'] == 'true' ? "api" : "sandbox"
15
- domain = "https://#{subdomain}.pwinty.com/v2.1"
13
+ attr_accessor :pwinty
14
+ def initialize(args={})
15
+ options = { merchant_id: ENV['PWINTY_MERCHANT_ID'], api_key: ENV['PWINTY_API_KEY'], production: ENV['PWINTY_PRODUCTION'] == 'true' }.merge(args)
16
+ subdomain = options[:production] == true ? "api" : "sandbox"
17
+ apiVersion = options[:api_version] || 'v2.1'
18
+ domain = "https://#{subdomain}.pwinty.com/#{apiVersion}"
16
19
 
17
20
  @pwinty = RestClient::Resource.new(domain, :headers => {
18
- "X-Pwinty-MerchantId" => ENV['PWINTY_MERCHANT_ID'],
19
- "X-Pwinty-REST-API-Key" => ENV['PWINTY_API_KEY'],
21
+ "X-Pwinty-MerchantId" => options[:merchant_id],
22
+ "X-Pwinty-REST-API-Key" => options[:api_key],
20
23
  'Accept' => 'application/json'
21
24
  })
22
25
  end
@@ -68,7 +71,11 @@ module Pwinty
68
71
  JSON.parse @pwinty["/Orders/#{orderId}/Photos"].post(args, headers)
69
72
  end
70
73
 
71
- # post :add_photos, "/Orders/:orderId/Photos/Batch"
74
+ def add_photos(orderId, photos)
75
+ body = photos.is_a?(String) ? photos : photos.to_json
76
+ JSON.parse @pwinty["/Orders/#{orderId}/Photos/Batch"].post(body, {'Content-Type' => 'application/json'} )
77
+ end
78
+
72
79
  def delete_photo(orderId, photoId)
73
80
  JSON.parse @pwinty["/Orders/#{orderId}/Photos/#{photoId}"].delete
74
81
  end
@@ -1,3 +1,3 @@
1
1
  module Pwinty
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -14,7 +14,7 @@ class TestClient < Test::Unit::TestCase
14
14
  qualityLevel: "Standard"
15
15
  }
16
16
 
17
- @client = Pwinty.client
17
+ @client = Pwinty.client(merchant_id: ENV['PWINTY_MERCHANT_ID'], api_key: ENV['PWINTY_API_KEY'], production: false)
18
18
 
19
19
  @order_keys = %w[ id status price
20
20
  address1 address2
@@ -42,6 +42,7 @@ class TestClient < Test::Unit::TestCase
42
42
  assert_equal body["items"].class, Array
43
43
  end
44
44
  def test_get_orders_integration
45
+ # NOTE: works only if you already have an order created. the first ever test run will probably fail
45
46
  body = @client.get_orders
46
47
  assert_equal body.class, Array
47
48
  assert_equal body.first.keys.sort!, @order_keys.sort!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwinty
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Derek Lucas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-11 00:00:00.000000000 Z
11
+ date: 2016-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -75,6 +75,8 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - ".gitignore"
77
77
  - ".travis.yml"
78
+ - CHANGELOG.md
79
+ - CONTRIBUTING.md
78
80
  - Gemfile
79
81
  - README.md
80
82
  - Rakefile
@@ -104,7 +106,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
106
  version: '0'
105
107
  requirements: []
106
108
  rubyforge_project:
107
- rubygems_version: 2.2.2
109
+ rubygems_version: 2.6.6
108
110
  signing_key:
109
111
  specification_version: 4
110
112
  summary: A Ruby client for the Pwinty API