plenty_client 0.0.4 → 0.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1caf9e5a2169c042dff94eab3a14658035ab192b
4
- data.tar.gz: f22c7f21862b4c0f87a0bdf36e89686070e3e3d8
3
+ metadata.gz: 574a5ae3c92bbeb8b3a23e4e239437d8cfd05b7d
4
+ data.tar.gz: b47ee0a43f3f5d994f7cbb6ea20409af4d460af0
5
5
  SHA512:
6
- metadata.gz: 29fde2a0313b0789700bcc14d5404a87757bee08c0f0f1a2b76c647e780c130a8a6dcd810f7d19849e6a437545ab769b0e3f7cf2e3a8802bbe699b9f563cf28c
7
- data.tar.gz: 603f9175393c467d28105cdabb1c60b0849a895f68820ccc700fec8ba5359efda1efca6cd8e1e6ce7298752e4cbd79293fdab5f9efe304b35f35128e218ae02c
6
+ metadata.gz: 126d303536c9d39ca19ab0cee90c6a986d494616fe77a3f13107dcf0f6aeaf2766d32559d0ca04123814227c36015c6c7362636c72a0f35ca0d0d838c3ddf09f
7
+ data.tar.gz: 5fec7699e2ca87885ca2dc920a5681134ea8de0df84729f7978268c0f763af4448b8ba2e5fd876380908f5a70bb397d0d2b08be4bf8a029808b23603d20f99b9
data/.rubocop.yml CHANGED
@@ -41,3 +41,9 @@ Metrics/ParameterLists:
41
41
  Max: 10
42
42
  Metrics/PerceivedComplexity:
43
43
  Max: 99
44
+
45
+ Metrics/BlockLength:
46
+ Exclude:
47
+ - '**/*.rake'
48
+ - 'spec/**/*.rb'
49
+ - 'config/**/*.rb'
data/Guardfile ADDED
@@ -0,0 +1,6 @@
1
+ notification :off
2
+ guard :rspec, cmd: 'rspec' do
3
+ watch(%r{^spec/.+_spec\.rb$})
4
+ watch(%r{^lib/(plenty_client/)?(.+)\.rb$}) { |m| "spec/#{m[2]}_spec.rb" }
5
+ watch('spec/spec_helper.rb') { "spec" }
6
+ end
data/README.md CHANGED
@@ -105,9 +105,9 @@ PlentyClient::Item::Variation.routes
105
105
  * [~~`Market`~~](https://developers.plentymarkets.com/rest-doc/market)
106
106
  * [~~`Order`~~](https://developers.plentymarkets.com/rest-doc/order)
107
107
  * [~~`OrderSummary`~~](https://developers.plentymarkets.com/rest-doc/order_summary)
108
- * [`Payment`](https://developers.plentymarkets.com/rest-doc/payment)
108
+ * [~~`Payment`~~](https://developers.plentymarkets.com/rest-doc/payment)
109
109
  * [`Plugins`](https://developers.plentymarkets.com/rest-doc/plugins)
110
- * [`StockManagement`](https://developers.plentymarkets.com/rest-doc/stock_management)
110
+ * [~~`StockManagement`~~](https://developers.plentymarkets.com/rest-doc/stock_management)
111
111
  * [~~`Ticket`~~](https://developers.plentymarkets.com/rest-doc/ticket)
112
112
  * [~~`Webstore`~~](https://developers.plentymarkets.com/rest-doc/webstore)
113
113
  - missing [OrderItem OrderItemDate](https://developers.plentymarkets.com/rest-doc/order_order_item_order_item_date/details#get-all-order-item-dates-for-one-order-item-by-its-order-item-id) - its just a mess
data/lib/plenty_client.rb CHANGED
@@ -9,6 +9,7 @@ module PlentyClient
9
9
  autoload :Request, 'plenty_client/request'
10
10
  autoload :Version, 'plenty_client/version'
11
11
 
12
+ autoload :Account, 'plenty_client/account'
12
13
  autoload :Accounting, 'plenty_client/accounting'
13
14
  autoload :Authentication, 'plenty_client/authentication'
14
15
  autoload :Authorization, 'plenty_client/authorization'
@@ -21,8 +22,21 @@ module PlentyClient
21
22
  autoload :Listing, 'plenty_client/listing'
22
23
  autoload :Order, 'plenty_client/order'
23
24
  autoload :OrderSummary, 'plenty_client/order_summary'
25
+ autoload :Payment, 'plenty_client/payment'
26
+ autoload :Stock, 'plenty_client/stock'
27
+ autoload :Warehouse, 'plenty_client/warehouse'
24
28
  autoload :Webstore, 'plenty_client/webstore'
25
29
 
30
+ module Account
31
+ autoload :Contact, 'plenty_client/account/contact'
32
+
33
+ module Contact
34
+ autoload :Address, 'plenty_client/account/contact/address'
35
+ autoload :Bank, 'plenty_client/account/contact/bank'
36
+ autoload :Type, 'plenty_client/account/contact/type'
37
+ end
38
+ end
39
+
26
40
  module Basket
27
41
  autoload :Item, 'plenty_client/basket/item'
28
42
  end
@@ -148,6 +162,24 @@ module PlentyClient
148
162
  end
149
163
  end
150
164
 
165
+ module Payment
166
+ autoload :Contact, 'plenty_client/payment/contact'
167
+ autoload :Method, 'plenty_client/payment/method'
168
+ autoload :MethodName, 'plenty_client/payment/method_name'
169
+ autoload :Order, 'plenty_client/payment/order'
170
+ autoload :Property, 'plenty_client/payment/property'
171
+ autoload :Status, 'plenty_client/payment/status'
172
+ autoload :Transaction, 'plenty_client/payment/transaction'
173
+
174
+ module Property
175
+ autoload :Type, 'plenty_client/payment/property/type'
176
+
177
+ module Type
178
+ autoload :Name, 'plenty_client/payment/property/type/name'
179
+ end
180
+ end
181
+ end
182
+
151
183
  module SalesPrice
152
184
  autoload :Account, 'plenty_client/sales_price/account'
153
185
  autoload :Country, 'plenty_client/sales_price/country'
@@ -157,4 +189,15 @@ module PlentyClient
157
189
  autoload :OnlineStore, 'plenty_client/sales_price/online_store'
158
190
  autoload :Referrer, 'plenty_client/sales_price/referrer'
159
191
  end
192
+
193
+ module Warehouse
194
+ autoload :Stock, 'plenty_client/warehouse/stock'
195
+ autoload :Management, 'plenty_client/warehouse/management'
196
+
197
+ module Management
198
+ autoload :Rack, 'plenty_client/warehouse/management/rack'
199
+ autoload :Shelf, 'plenty_client/warehouse/management/shelf'
200
+ autoload :StorageLocation, 'plenty_client/warehouse/management/storage_location'
201
+ end
202
+ end
160
203
  end
@@ -0,0 +1,55 @@
1
+ module PlentyClient
2
+ module Account
3
+ include PlentyClient::Endpoint
4
+ include PlentyClient::Request
5
+
6
+ LIST_ACCOUNTS = '/accounts'.freeze
7
+ FIND_ACCOUNT = '/accounts/{accountId}'.freeze
8
+ CREATE_ACCOUNT = '/accounts'.freeze
9
+ UPDATE_ACCOUNT = '/accounts/{accountId}'.freeze
10
+ DELETE_ACCOUNT = '/accounts/{accountId}'.freeze
11
+ LIST_ACCOUNTS_CONTACTS = '/accounts/{accountId}/contacts'.freeze
12
+
13
+ ACCOUNT_LOGIN = '/account/login'.freeze
14
+ ACCOUNT_REFRESH = '/account/login/refresh'.freeze
15
+ ACCOUNT_LOGOUT = '/account/logout'.freeze
16
+
17
+ class << self
18
+ def list(headers = {}, &block)
19
+ get(build_endpoint(LIST_ACCOUNTS), headers, &block)
20
+ end
21
+
22
+ def find(account_id, headers = {}, &block)
23
+ get(build_endpoint(FIND_ACCOUNT, account: account_id), headers, &block)
24
+ end
25
+
26
+ def create(body = {})
27
+ post(CREATE_ACCOUNT, body)
28
+ end
29
+
30
+ def update(account_id, body = {})
31
+ put(build_endpoint(UPDATE_ACCOUNT, account: account_id), body)
32
+ end
33
+
34
+ def destroy(account_id, body = {})
35
+ delete(build_endpoint(DELETE_ACCOUNT, account: account_id), body)
36
+ end
37
+
38
+ def list_contacts(account_id, headers = {}, &block)
39
+ get(build_endpoint(LIST_ACCOUNTS_CONTACTS, account: account_id), headers, &block)
40
+ end
41
+
42
+ def login(body = {})
43
+ post(ACCOUNT_LOGIN, body)
44
+ end
45
+
46
+ def refresh_login(body = {})
47
+ post(ACCOUNT_REFRESH, body)
48
+ end
49
+
50
+ def logout(body = {})
51
+ post(ACCOUNT_LOGOUT, body)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,36 @@
1
+ module PlentyClient
2
+ module Account
3
+ module Contact
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ LIST_A_CONTACTS = '/accounts/contacts'.freeze
8
+ FIND_A_CONTACT = '/accounts/contacts/{contactId}'.freeze
9
+ CREATE_A_CONTACT = '/accounts/contacts'.freeze
10
+ UPDATE_A_CONTACT = '/accounts/contacts/{contactId}'.freeze
11
+ DELETE_A_CONTACT = '/accounts/contacts/{contactId}'.freeze
12
+
13
+ class << self
14
+ def list(headers = {}, &block)
15
+ get(build_endpoint(LIST_A_CONTACTS), headers, &block)
16
+ end
17
+
18
+ def find(contact_id, headers = {}, &block)
19
+ get(build_endpoint(FIND_A_CONTACT, contact: contact_id), headers, &block)
20
+ end
21
+
22
+ def create(body = {})
23
+ post(CREATE_A_CONTACT, body)
24
+ end
25
+
26
+ def update(contact_id, body = {})
27
+ put(build_endpoint(UPDATE_A_CONTACT, contact: contact_id), body)
28
+ end
29
+
30
+ def destroy(contact_id, body = {})
31
+ delete(build_endpoint(DELETE_A_CONTACT, contact: contact_id), body)
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,53 @@
1
+ module PlentyClient
2
+ module Account
3
+ module Contact
4
+ class Address
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ CONTACT_ADDRESS_BASE_PATH = '/accounts/contacts/{contactId}'.freeze
9
+
10
+ LIST_A_CONTACT_ADDRESSES = '/addresses/{addressTypeId}'.freeze
11
+ CREATE_A_CONTACT_ADDRESS = '/addresses'.freeze
12
+ UPDATE_A_CONTACT_ADDRESS = '/addresses/{addressId}'.freeze
13
+ DELETE_A_CONTACT_ADDRESS = '/addresses/{addressId}'.freeze
14
+ SET_PRIMARY_CONTACT_ADDRESS = '/addresses/{addressId}/types/{addressTypeId}/primary'.freeze
15
+
16
+ class << self
17
+ def list(contact_id, address_type = '', headers = {}, &block)
18
+ get(build_endpoint("#{CONTACT_ADDRESS_BASE_PATH}#{LIST_A_CONTACT_ADDRESSES}",
19
+ contact: contact_id,
20
+ address_type: address_type),
21
+ headers, &block)
22
+ end
23
+
24
+ def create(body = {})
25
+ post("#{CONTACT_ADDRESS_BASE_PATH}#{CREATE_A_CONTACT_ADDRESS}", body)
26
+ end
27
+
28
+ def update(contact_id, address_id, body = {})
29
+ put(build_endpoint("#{CONTACT_ADDRESS_BASE_PATH}#{UPDATE_A_CONTACT_ADDRESS}",
30
+ contact: contact_id,
31
+ address: address_id),
32
+ body)
33
+ end
34
+
35
+ def destroy(contact_id, address_id, body = {})
36
+ delete(build_endpoint("#{CONTACT_ADDRESS_BASE_PATH}#{DELETE_A_CONTACT_ADDRESS}",
37
+ contact: contact_id,
38
+ address: address_id),
39
+ body)
40
+ end
41
+
42
+ def update_primary(contact_id, address_id, address_type, body = {})
43
+ put(build_endpoint("#{CONTACT_ADDRESS_BASE_PATH}#{SET_PRIMARY_CONTACT_ADDRESS}",
44
+ contact: contact_id,
45
+ address: address_id,
46
+ address_type: address_type),
47
+ body)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,38 @@
1
+ module PlentyClient
2
+ module Account
3
+ module Contact
4
+ class Bank
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ LIST_A_CONTACT_PAYMENTS = '/accounts/contacts/{contactId}/banks'.freeze
9
+ FIND_A_CONTACT_PAYMENT = '/accounts/contacts/banks/{contactBankId}'.freeze
10
+ CREATE_A_CONTACT_PAYMENT = '/accounts/contacts/banks'.freeze
11
+ UPDATE_A_CONTACT_PAYMENT = '/accounts/contacts/banks/{contactBankId}'.freeze
12
+ DELETE_A_CONTACT_PAYMENT = '/accounts/contacts/banks/{contactBankId}'.freeze
13
+
14
+ class << self
15
+ def list(contact_id, headers = {}, &block)
16
+ get(build_endpoint(LIST_A_CONTACT_PAYMENTS, contact: contact_id), headers, &block)
17
+ end
18
+
19
+ def find(contact_bank_id, headers = {}, &block)
20
+ get(build_endpoint(FIND_A_CONTACT_PAYMENT, contact_bank: contact_bank_id), headers, &block)
21
+ end
22
+
23
+ def create(body = {})
24
+ post(CREATE_A_CONTACT_PAYMENT, body)
25
+ end
26
+
27
+ def update(contact_bank_id, body = {})
28
+ put(build_endpoint(UPDATE_A_CONTACT_PAYMENT, contact_bank: contact_bank_id), body)
29
+ end
30
+
31
+ def destroy(contact_bank_id, body = {})
32
+ delete(build_endpoint(DELETE_A_CONTACT_PAYMENT, contact_bank: contact_bank_id), body)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ module PlentyClient
2
+ module Account
3
+ module Contact
4
+ class Type
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ LIST_A_CONTACT_TYPES = '/accounts/contacts/types'.freeze
9
+ FIND_A_CONTACT_TYPE = '/accounts/contacts/types/{typeId}'.freeze
10
+ CREATE_A_CONTACT_TYPE = '/accounts/contacts/types'.freeze
11
+ UPDATE_A_CONTACT_TYPE = '/accounts/contacts/types/{typeId}'.freeze
12
+ DELETE_A_CONTACT_TYPE = '/accounts/contacts/types/{typeId}'.freeze
13
+
14
+ class << self
15
+ def list(headers = {}, &block)
16
+ get(build_endpoint(LIST_A_CONTACT_TYPES), headers, &block)
17
+ end
18
+
19
+ def find(type, headers = {}, &block)
20
+ get(build_endpoint(FIND_A_CONTACT_TYPE, type: type), headers, &block)
21
+ end
22
+
23
+ def create(body = {})
24
+ post(CREATE_A_CONTACT_TYPE, body)
25
+ end
26
+
27
+ def update(type, body = {})
28
+ put(build_endpoint(UPDATE_A_CONTACT_TYPE, type: type), body)
29
+ end
30
+
31
+ def destroy(type, body = {})
32
+ delete(build_endpoint(DELETE_A_CONTACT_TYPE, type: type), body)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -3,14 +3,27 @@ module PlentyClient
3
3
  class NoCredentials < StandardError; end
4
4
  class NoToken < StandardError; end
5
5
  class NoPlentyId < StandardError; end
6
+ class InvalidCredentials < StandardError; end
7
+
8
+ # When expiry_date is less than this many seconds from now, it should renew API keys
9
+ LOGIN_RENEW_BUFFER = 60
6
10
 
7
11
  class << self
8
12
  attr_accessor :site_url, :api_user, :api_password, :access_token, :refresh_token, :log, :expiry_date, :plenty_id
9
13
 
10
- def validate
14
+ def validate_credentials
11
15
  raise NoCredentials if site_url.nil? || api_user.nil? || api_password.nil?
12
- raise NoToken if access_token.nil? || refresh_token.nil?
13
- raise NoPlentyId if plenty_id.blank?
16
+ end
17
+
18
+ def tokens_present?
19
+ !access_token.nil? && !refresh_token.nil?
20
+ end
21
+
22
+ def tokens_valid?
23
+ tokens_present? &&
24
+ expiry_date.instance_of?(Time) &&
25
+ expiry_date > Time.now &&
26
+ (expiry_date - Time.now > LOGIN_RENEW_BUFFER)
14
27
  end
15
28
  end
16
29
  end
@@ -11,6 +11,7 @@ module PlentyClient
11
11
  endpoint_parameters = {
12
12
  account: /\{accountId\}/,
13
13
  address: /\{addressId\}/,
14
+ address_type: /\{addressTypeId\}/,
14
15
  account_ype: /\{accountType\}/,
15
16
  attribute: /\{attributeId\}/,
16
17
  attribute_value: /\{attributeValueId\}/,
@@ -21,6 +22,7 @@ module PlentyClient
21
22
  component: /\{componentId\}/,
22
23
  comment: /\{commentId\}/,
23
24
  contact: /\{contactId\}/,
25
+ contact_bank: /\{contactBankId\}/,
24
26
  country: /\{countryId\}/,
25
27
  coupon_string: /\{coupon\}/,
26
28
  credentials: /\{credentialsId\}/,
@@ -44,25 +46,36 @@ module PlentyClient
44
46
  market_listing_history: /\{marketListingHistoryId\}/,
45
47
  market_text: /\{marketTextId\}/,
46
48
  marketplace: /\{marketplaceId\}/,
49
+ name: /\{nameId\}/,
47
50
  option_template: /\{optionTemplateId}/,
48
51
  order: /\{orderId\}/,
49
52
  order_item: /\{orderItemId\}/,
50
53
  order_summary: /\{orderSummaryId\}/,
54
+ payment: /\{paymentId\}/,
55
+ payment_method: /\{paymenMethodId\}/,
51
56
  parent_referrer: /\{parentReferrerId\}/,
52
57
  plenty: /\{plentyId\}/,
58
+ plugin_key: /\{pluginKey\}/,
53
59
  preset: /\{presetId\}/,
60
+ property_type: /\{propertyTypeId\}/,
61
+ property_value: /\{propertyValue\}/,
54
62
  price: /\{priceId\}/,
55
63
  property_group: /\{propertyGroupId\}/,
56
64
  property: /\{propertyId\}/,
65
+ rack: /\{rackId\}/,
57
66
  referrer: /\{referrerId\}/,
58
67
  reference_type: /\{referenceType\}/,
59
68
  reference_value: /\{referenceValue\}/,
60
69
  sales_price: /\{salesPriceId\}/,
70
+ shelf: /\{shelfId\}/,
61
71
  shipping_profile: /\{shippingProfileId\}/,
62
72
  shipping_package: /\{orderShippingPackageId\}/,
63
73
  shipping_service_provider: /\{shippingServiceProviderID\}/,
64
74
  sku: /\{skuId\}/,
75
+ status: /\{statusId\}/,
76
+ storage_location: /\{storageLocationId\}/,
65
77
  ticket: /\{ticketId\}/,
78
+ transaction_type: /\{transactionTypeId\}/,
66
79
  type: /\{typeId\}/,
67
80
  type_string: /\{type\}/,
68
81
  unit: /\{unitId\}/,
@@ -0,0 +1,35 @@
1
+ module PlentyClient
2
+ module Payment
3
+ include PlentyClient::Endpoint
4
+ include PlentyClient::Request
5
+
6
+ LIST_PAYMENTS = '/payments'.freeze
7
+ FIND_PAYMENT = '/payments/{paymentId}'.freeze
8
+ CREATE_PAYMENT = '/payments'.freeze
9
+ UPDATE_PAYMENT = '/payments/{paymentId}'.freeze
10
+ PAYMENT_ENTRYDATE = '/payments/entrydate'.freeze
11
+ PAYMENT_IMPORTDATE = '/payments/importdate'.freeze
12
+
13
+ class << self
14
+ def list(headers = {}, &block)
15
+ get(build_endpoint(LIST_PAYMENT), headers, &block)
16
+ end
17
+
18
+ def find(payment_id, headers = {}, &block)
19
+ get(build_endpoint(FIND_PAYMENT, payment: payment_id), headers, &block)
20
+ end
21
+
22
+ def update(payment_id, body = {})
23
+ put(build_endpoint(FIND_PAYMENT, payment: payment_id), body)
24
+ end
25
+
26
+ def list_by_entry_date(headers = {}, &block)
27
+ get(build_endpoint(PAYMENT_ENTRYDATE), headers, &block)
28
+ end
29
+
30
+ def list_by_import_date(headers = {}, &block)
31
+ get(build_endpoint(PAYMENT_IMPORTDATE), headers, &block)
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,21 @@
1
+ module PlentyClient
2
+ module Payment
3
+ class Contact
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ CREATE_PAYMENT_CONTACT_RELATION = '/payment/{paymentId}/contact/{contactId}'.freeze
8
+ DELETE_CONTACTS_PAYMENT = '/payment/{paymentId}/contact'.freeze
9
+
10
+ class << self
11
+ def create(payment_id, contact_id, body = {})
12
+ post(build_endpoint(CREATE_PAYMENT_CONTACT_RELATION, payment: payment_id, contact: contact_id), body)
13
+ end
14
+
15
+ def destroy(payment_id, body = {})
16
+ delete(build_endpoint(DELETE_CONTACTS_PAYMENT, payment: payment_id), body)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,51 @@
1
+ module PlentyClient
2
+ module Payment
3
+ module Method
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ LIST_PAYMENT_METHODS = '/payments/methods'.freeze
8
+ FIND_PAYMENT_METHOD = '/payments/methods/{paymentMethodId}'.freeze
9
+ FIND_PLUGIN_PAYMENT_METHOD = '/payments/methods/{pluginKey}'.freeze
10
+ CREATE_PAYMENT_METHOD = '/payments/methods'.freeze
11
+ UPDATE_PAYMENT_METHOD = '/payments/methods'.freeze
12
+ UPDATE_PAYMENT_METHOD_WITH_ID = '/payments/methods/{pluginKey}'.freeze
13
+ LIST_PAYMENT_EBICS_ACCOUNTS = '/payments/methods/ebics'.freeze
14
+ CREATE_PAYMENT_EBICS_ACCOUNT = '/payments/methods/ebics'.freeze
15
+
16
+ class << self
17
+ def list(headers = {}, &block)
18
+ get(build_endpoint(LIST_PAYMENT_METHODS), headers, &block)
19
+ end
20
+
21
+ def find(method_id, headers = {}, &block)
22
+ get(build_endpoint(FIND_PAYMENT_METHOD, payment_method: method_id), headers, &block)
23
+ end
24
+
25
+ def find_by_plugin_key(plugin_key, headers = {}, &block)
26
+ get(build_endpoint(FIND_PLUGIN_PAYMENT_METHOD, plugin_key: plugin_key), headers, &block)
27
+ end
28
+
29
+ def create(body = {})
30
+ post(build_endpoint(CREATE_PAYMENT_METHOD), body)
31
+ end
32
+
33
+ def update(body = {})
34
+ put(build_endpoint(UPDATE_PAYMENT_METHOD), body)
35
+ end
36
+
37
+ # def update(plugin_key, body = {})
38
+ # put(build_endpoint(UPDATE_PAYMENT_METHOD_WITH_ID, plugin_key: plugin_key), body)
39
+ # end
40
+
41
+ def list_ebics_accounts(headers = {}, &block)
42
+ get(build_endpoint(LIST_PAYMENT_EBICS_ACCOUNTS), headers, &block)
43
+ end
44
+
45
+ def create_ebics_account(body = {})
46
+ post(build_endpoint(CREATE_PAYMENT_EBICS_ACCOUNT), body)
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,29 @@
1
+ module PlentyClient
2
+ module Payment
3
+ module MethodName
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ LIST_METHOD_NAMES = '/payments/methodNames'.freeze
8
+ LIST_METHOD_NAMES_FOR_PAYMENT_METHOD = '/payments/methodNames/{paymentMethodId}'.freeze
9
+ FIND_METHOD_NAMES_FOR_PAYMENT_METHOD_BY_LANG = '/payments/methodNames/{paymentMethodId}/{land}'.freeze
10
+
11
+ class << self
12
+ def list(headers = {}, &block)
13
+ get(build_endpoint(LIST_METHOD_NAMES), headers, &block)
14
+ end
15
+
16
+ def list_for_payment_method(payment_method_id, headers = {}, &block)
17
+ get(build_endpoint(LIST_METHOD_NAMES, payment_method: payment_method_id), headers, &block)
18
+ end
19
+
20
+ def list_for_payment_method_by_lang(payment_method_id, lang, headers = {}, &block)
21
+ get(build_endpoint(LIST_METHOD_NAMES_FOR_PAYMENT_METHOD,
22
+ payment_method: payment_method_id,
23
+ lang: lang),
24
+ headers, &block)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ module PlentyClient
2
+ module Payment
3
+ class Order
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ LIST_ORDERS_PAYMENTS = '/payments/orders/{orderId}'.freeze
8
+ CREATE_PAYMENT_ORDER_RELATION = '/payment/{paymentId}/order/{orderId}'.freeze
9
+ DELETE_ORDERS_PAYMENT = '/payment/{paymentId}/order'.freeze
10
+
11
+ class << self
12
+ def list(order_id, headers = {}, &block)
13
+ get(build_endpoint(LIST_ORDERS_PAYMENTS, order: order_id), headers, &block)
14
+ end
15
+
16
+ def create(payment_id, order_id, body = {})
17
+ post(build_endpoint(CREATE_PAYMENT_ORDER_RELATION, payment: payment_id, order: order_id), body)
18
+ end
19
+
20
+ def destroy(payment_id, body = {})
21
+ delete(build_endpoint(DELETE_ORDERS_PAYMENT, payment: payment_id), body)
22
+ end
23
+
24
+ # def update(payment_id, body = {})
25
+ # post(build_endpoint(UPDATE_PAYMENT_PROPERTY_WITH_ID, payment: payment_id), body)
26
+ # end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,48 @@
1
+ module PlentyClient
2
+ module Payment
3
+ module Property
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ LIST_PAYMENT_PROPERTIES = '/payments/properties'.freeze
8
+ LIST_PAYMENT_PROPERTIES_BY_PAYMENT = '/payments/{paymentId}/properties'.freeze
9
+ FIND_PLUGIN_PAYMENT_PROPERTY = '/payments/properties/{propertyId}'.freeze
10
+ CREATE_PAYMENT_PROPERTY = '/payments/properties'.freeze
11
+ UPDATE_PAYMENT_PROPERTY_WITH_ID = '/payments/properties/{propertyId}'.freeze
12
+ UPDATE_PAYMENT_PROPERTY = '/payments/properties'.freeze
13
+ LIST_P_PROPERTIES_BY_TYPE_AND_VALUE = '/payments/property/{propertyTypeId}/{propertyValue}'.freeze
14
+ class << self
15
+ def list(headers = {}, &block)
16
+ get(build_endpoint(LIST_PAYMENT_PROPERTIES), headers, &block)
17
+ end
18
+
19
+ def list_by_payment_id(payment_id, headers = {}, &block)
20
+ get(build_endpoint(LIST_PAYMENT_PROPERTIES_BY_PAYMENT, payment: payment_id), headers, &block)
21
+ end
22
+
23
+ def list_by_type_and_value(property_type_id, property_value, headers = {}, &block)
24
+ get(build_endpoint(LIST_P_PROPERTIES_BY_TYPE_AND_VALUE,
25
+ property_type: property_type_id,
26
+ property_value: property_value),
27
+ headers, &block)
28
+ end
29
+
30
+ def find(payment_id, headers = {}, &block)
31
+ get(build_endpoint(FIND_PLUGIN_PAYMENT_PROPERTY, payment: payment_id), headers, &block)
32
+ end
33
+
34
+ def create(body = {})
35
+ post(build_endpoint(CREATE_PAYMENT_PROPERTY), body)
36
+ end
37
+
38
+ def update(body = {})
39
+ put(build_endpoint(UPDATE_PAYMENT_PROPERTY), body)
40
+ end
41
+
42
+ # def update(payment_id, body = {})
43
+ # post(build_endpoint(UPDATE_PAYMENT_PROPERTY_WITH_ID, payment: payment_id), body)
44
+ # end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,38 @@
1
+ module PlentyClient
2
+ module Payment
3
+ module Property
4
+ module Type
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ LIST_PAYMENT_PROPERTY_TYPES = '/payments/properties/types'.freeze
9
+ FIND_PAYMENT_PROPERTY_TYPE = '/payments/properties/types/{typeId}'.freeze
10
+ CREATE_PAYMENT_PROPERTY_TYPE = '/payments/properties/types'.freeze
11
+ UPDATE_PAYMENT_PROPERTY_TYPE_WITH_ID = '/payments/properties/types/{typeId}'.freeze
12
+ UPDATE_PAYMENT_PROPERTY_TYPE = '/payments/properties/types'.freeze
13
+
14
+ class << self
15
+ def list(headers = {}, &block)
16
+ get(build_endpoint(LIST_PAYMENT_PROPERTY_TYPES), headers, &block)
17
+ end
18
+
19
+ def find(type_id, headers = {}, &block)
20
+ get(build_endpoint(FIND_PAYMENT_PROPERTY_TYPE, type: type_id), headers, &block)
21
+ end
22
+
23
+ def create(body = {})
24
+ post(build_endpoint(CREATE_PAYMENT_PROPERTY_TYPE), body)
25
+ end
26
+
27
+ def update(body = {})
28
+ put(build_endpoint(UPDATE_PAYMENT_PROPERTY_TYPE), body)
29
+ end
30
+
31
+ # def update(type_id, body = {})
32
+ # post(build_endpoint(UPDATE_PAYMENT_PROPERTY_TYPE_WITH_ID, payment: type_id), body)
33
+ # end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,40 @@
1
+ module PlentyClient
2
+ module Payment
3
+ module Property
4
+ module Type
5
+ class Name
6
+ include PlentyClient::Endpoint
7
+ include PlentyClient::Request
8
+
9
+ LIST_PAYMENT_PROPERTY_TYPE_NAMES = '/payments/properties/types/names/{lang}'.freeze
10
+ FIND_PAYMENT_PROPERTY_TYPE_NAME = '/payments/properties/types/names/{nameId}'.freeze
11
+ CREATE_PAYMENT_PROPERTY_TYPE_NAME = '/payments/properties/types/names'.freeze
12
+ UPDATE_PAYMENT_PROPERTY_TYPE_NAME_WITH_ID = '/payments/properties/types/names/{nameId}'.freeze
13
+ UPDATE_PAYMENT_PROPERTY_TYPE_NAME = '/payments/properties/types/names'.freeze
14
+
15
+ class << self
16
+ def list(lang, headers = {}, &block)
17
+ get(build_endpoint(LIST_PAYMENT_PROPERTY_TYPE_NAMES, lang: lang), headers, &block)
18
+ end
19
+
20
+ def find(name_id, headers = {}, &block)
21
+ get(build_endpoint(FIND_PAYMENT_PROPERTY_TYPE_NAME, name: name_id), headers, &block)
22
+ end
23
+
24
+ def create(body = {})
25
+ post(build_endpoint(CREATE_PAYMENT_PROPERTY_TYPE_NAME), body)
26
+ end
27
+
28
+ def update(body = {})
29
+ put(build_endpoint(UPDATE_PAYMENT_PROPERTY_TYPE_NAME), body)
30
+ end
31
+
32
+ # def update(type_id, body = {})
33
+ # post(build_endpoint(UPDATE_PAYMENT_PROPERTY_TYPE_NAME_WITH_ID, payment: type_id), body)
34
+ # end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,16 @@
1
+ module PlentyClient
2
+ module Payment
3
+ class Status
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ FIND_PAYMENT_STATUS = '/payments/status/{statusId}'.freeze
8
+
9
+ class << self
10
+ def find(status_id, headers = {}, &block)
11
+ get(build_endpoint(FIND_PAYMENT_STATUS, status: status_id), headers, &block)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ module PlentyClient
2
+ module Payment
3
+ class Transaction
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ FIND_PAYMENT_TRANSACTIONS = '/payments/transactions/{transactionTypeId}'.freeze
8
+
9
+ class << self
10
+ def find(transaction_type_id, headers = {}, &block)
11
+ get(build_endpoint(FIND_PAYMENT_TRANSACTIONS, transaction_type: transaction_type_id), headers, &block)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -6,11 +6,9 @@ module PlentyClient
6
6
  module ClassMethods
7
7
  def request(http_method, path, params = {})
8
8
  return false if http_method.nil? || path.nil?
9
- return false unless %w(post put patch delete get).include?(http_method.to_s)
9
+ return false unless %w[post put patch delete get].include?(http_method.to_s)
10
10
 
11
- if PlentyClient::Config.access_token.nil? || (PlentyClient::Config.expiry_date - Time.now).negative?
12
- login_check
13
- end
11
+ login_check unless PlentyClient::Config.tokens_valid?
14
12
  parse_body(perform(http_method, path, params))
15
13
  end
16
14
 
@@ -35,13 +33,13 @@ module PlentyClient
35
33
  rval_array = []
36
34
  if block_given?
37
35
  loop do
38
- response = request(:get, path, params.merge(page: page))
39
- yield response['entries'] if block_given?
40
- page += 1
36
+ response = request(:get, path, params.merge('page' => page))
37
+ yield response['entries']
41
38
  break if response['isLastPage'] == true
39
+ page += 1
42
40
  end
43
41
  else
44
- rval_array = request(:get, path, params.merge(page: page))
42
+ rval_array = request(:get, path, { 'page' => page }.merge(params))
45
43
  end
46
44
  return rval_array.flatten if rval_array.is_a?(Array)
47
45
  rval_array
@@ -50,6 +48,7 @@ module PlentyClient
50
48
  private
51
49
 
52
50
  def login_check
51
+ PlentyClient::Config.validate_credentials
53
52
  response = perform(:post, '/login', username: PlentyClient::Config.api_user,
54
53
  password: PlentyClient::Config.api_password)
55
54
  result = parse_body(response)
@@ -68,7 +67,7 @@ module PlentyClient
68
67
  end
69
68
  end
70
69
  conn.adapter :typhoeus
71
- converted_parameters = %w(get delete).include?(http_method.to_s.downcase) ? params : params.to_json
70
+ converted_parameters = %w[get delete].include?(http_method.to_s.downcase) ? params : params.to_json
72
71
  conn.send(http_method.to_s.downcase, base_url(path), converted_parameters)
73
72
  end
74
73
 
@@ -91,25 +90,31 @@ module PlentyClient
91
90
  def parse_body(response)
92
91
  result = JSON.parse(response.body)
93
92
  errors = error_check(result)
94
- raise PlentyClient::ResponseError, [*errors].join(', ') unless errors.blank?
93
+ raise PlentyClient::ResponseError, [*errors].join(', ') unless !errors || errors&.empty?
95
94
  result
96
95
  end
97
96
 
98
97
  def error_check(response)
99
98
  rval = []
100
- return rval if response.blank?
99
+ return rval if !response || response&.empty?
101
100
  if response.is_a?(Array) && response.first.key?('error')
101
+ check_for_invalid_credentials(response.first)
102
102
  response.each do |res|
103
103
  rval << extract_message(res)
104
104
  end
105
105
  elsif response.is_a?(Hash) && response.key?('error')
106
+ check_for_invalid_credentials(response)
106
107
  rval << extract_message(response)
107
108
  end
108
109
  rval
109
110
  end
110
111
 
112
+ def check_for_invalid_credentials(response)
113
+ raise PlentyClient::Config::InvalidCredentials if response['error'] == 'invalid_credentials'
114
+ end
115
+
111
116
  def extract_message(response)
112
- if response.key?('validation_errors') && !response['validation_errors'].blank?
117
+ if response.key?('validation_errors') && response['validation_errors'] && !response['validation_errors']&.empty?
113
118
  response['validation_errors'].values.flatten.join(', ')
114
119
  else
115
120
  response['error']['message']
@@ -0,0 +1,24 @@
1
+ module PlentyClient
2
+ module Stock
3
+ include PlentyClient::Endpoint
4
+ include PlentyClient::Request
5
+
6
+ LIST_STOCK = '/stockmanagement/stock'.freeze
7
+ LIST_STOCK_BY_TYPE = '/stockmanagement/stock/types/{type}'.freeze
8
+ REDISTRIBUTE_STOCK = '/stockmanagement/stock/redistribute'.freeze
9
+
10
+ class << self
11
+ def list(headers = {}, &block)
12
+ get(build_endpoint(LIST_STOCK), headers, &block)
13
+ end
14
+
15
+ def list_by_type(type_string, headers = {}, &block)
16
+ get(build_endpoint(LIST_STOCK_BY_TYPE, type_string: type_string), headers, &block)
17
+ end
18
+
19
+ def redistribute(body = {})
20
+ put(build_endpoint(REDISTRIBUTE_STOCK), body)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module PlentyClient
2
- VERSION = '0.0.4'.freeze
2
+ VERSION = '0.0.5'.freeze
3
3
  end
@@ -0,0 +1,24 @@
1
+ module PlentyClient
2
+ module Warehouse
3
+ include PlentyClient::Endpoint
4
+ include PlentyClient::Request
5
+
6
+ LIST_WAREHOUSES = '/stockmanagement/warehouses'.freeze
7
+ FIND_WAREHOUSE = '/stockmanagement/warehouses/{warehouseId}'.freeze
8
+ CREATE_WAREHOUSE = '/stockmanagement/warehouses'.freeze
9
+
10
+ class << self
11
+ def list(headers = {}, &block)
12
+ get(build_endpoint(LIST_WAREHOUSES), headers, &block)
13
+ end
14
+
15
+ def find(warehouse_id, headers = {}, &block)
16
+ get(build_endpoint(FIND_WAREHOUSE, warehouse: warehouse_id), headers, &block)
17
+ end
18
+
19
+ def create(body = {})
20
+ post(build_endpoint(CREATE_WAREHOUSE), body)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,27 @@
1
+ module PlentyClient
2
+ module Warehouse
3
+ module Management
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ WM_STORAGE_LOCATION_BASE_PATH = '/stockmanagement/warehouses/{warehouseId}/management'.freeze
8
+ WM_LIST_STORAGE_LOCATIONS = '/storageLocations'.freeze
9
+ WM_FIND_STORAGE_LOCATIONS = '/storageLocations/{storageLocationId}'.freeze
10
+
11
+ class << self
12
+ def list(warehouse_id, headers = {}, &block)
13
+ get(build_endpoint("#{WM_STORAGE_LOCATION_BASE_PATH}#{WM_LIST_STORAGE_LOCATIONS}",
14
+ warehouse: warehouse_id),
15
+ headers, &block)
16
+ end
17
+
18
+ def find(warehouse_id, storage_location_id, headers = {}, &block)
19
+ get(build_endpoint("#{WM_STORAGE_LOCATION_BASE_PATH}#{WM_FIND_STORAGE_LOCATIONS}",
20
+ warehouse: warehouse_id,
21
+ storage_location: storage_location_id),
22
+ headers, &block)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,35 @@
1
+ module PlentyClient
2
+ module Warehouse
3
+ module Management
4
+ class Rack
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ WM_WAREHOUSE_MGMT_BASE_PATH = '/stockmanagement/warehouses/{warehouseId}/management'.freeze
9
+
10
+ WM_LIST_RACKS = '/racks'.freeze
11
+ WM_FIND_RACKS = '/racks/{rackId}'.freeze
12
+ WM_CREATE_RACK = '/racks'.freeze
13
+
14
+ class << self
15
+ def list(warehouse_id, headers = {}, &block)
16
+ get(build_endpoint("#{WM_WAREHOUSE_MGMT_BASE_PATH}#{WM_LIST_RACKS}",
17
+ warehouse: warehouse_id),
18
+ headers, &block)
19
+ end
20
+
21
+ def find(warehouse_id, rack_id, headers = {}, &block)
22
+ get(build_endpoint("#{WM_WAREHOUSE_MGMT_BASE_PATH}#{WM_FIND_RACKS}",
23
+ warehouse: warehouse_id,
24
+ rack: rack_id),
25
+ headers, &block)
26
+ end
27
+
28
+ def create(warehouse_id, body = {})
29
+ post(build_endpoint("#{WM_WAREHOUSE_MGMT_BASE_PATH}#{WM_CREATE_RACK}", warehouse: warehouse_id), body)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,38 @@
1
+ module PlentyClient
2
+ module Warehouse
3
+ module Management
4
+ class Shelf
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ WM_WAREHOUSE_MGMT_BASE_PATH = '/stockmanagement/warehouses/{warehouseId}/management'.freeze
9
+
10
+ WM_LIST_SHELF = '/racks/{rackId}/shelves'.freeze
11
+ WM_FIND_SHELF = '/racks/{rackId}/shelves/{shelfId}'.freeze
12
+ WM_CREATE_SHELF = '/racks/{rackId}/shelves'.freeze
13
+
14
+ class << self
15
+ def list(warehouse_id, rack_id, headers = {}, &block)
16
+ get(build_endpoint("#{WM_WAREHOUSE_MGMT_BASE_PATH}#{WM_LIST_SHELF}",
17
+ warehouse: warehouse_id, rack: rack_id),
18
+ headers, &block)
19
+ end
20
+
21
+ def find(warehouse_id, rack_id, shelf_id, headers = {}, &block)
22
+ get(build_endpoint("#{WM_WAREHOUSE_MGMT_BASE_PATH}#{WM_FIND_SHELF}",
23
+ warehouse: warehouse_id,
24
+ rack: rack_id,
25
+ shelf: shelf_id),
26
+ headers, &block)
27
+ end
28
+
29
+ def create(warehouse_id, rack_id, body = {})
30
+ post(build_endpoint("#{WM_WAREHOUSE_MGMT_BASE_PATH}#{WM_CREATE_SHELF}",
31
+ warehouse: warehouse_id, rack: rack_id),
32
+ body)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,42 @@
1
+ module PlentyClient
2
+ module Warehouse
3
+ module Management
4
+ class StorageLocation
5
+ include PlentyClient::Endpoint
6
+ include PlentyClient::Request
7
+
8
+ WM_STORAGE_LOCATION_BASE_PATH = '/stockmanagement/warehouses/{warehouseId}/management'.freeze
9
+ WM_SL_LIST_STORAGE_LOCATIONS = '/racks/{rackId}/shelves/{shelfId}/storageLocations'.freeze
10
+ WM_SL_FIND_STORAGE_LOCATIONS = '/racks/{rackId}/shelves/{shelfId}/storageLocations/{storageLocationId}'.freeze
11
+ WM_SL_CREATE_STORAGE_LOCATION = '/racks/{rackId}/shelves/{shelfId}/storageLocations'.freeze
12
+
13
+ class << self
14
+ def list(warehouse_id, rack_id, shelf_id, headers = {}, &block)
15
+ get(build_endpoint("#{WM_STORAGE_LOCATION_BASE_PATH}#{WM_SL_LIST_STORAGE_LOCATIONS}",
16
+ warehouse: warehouse_id,
17
+ rack: rack_id,
18
+ shelf: shelf_id),
19
+ headers, &block)
20
+ end
21
+
22
+ def find(warehouse_id, rack_id, shelf_id, storage_location_id, headers = {}, &block)
23
+ get(build_endpoint("#{WM_STORAGE_LOCATION_BASE_PATH}#{WM_SL_FIND_STORAGE_LOCATIONS}",
24
+ warehouse: warehouse_id,
25
+ rack: rack_id,
26
+ shelf: shelf_id,
27
+ storage_location: storage_location_id),
28
+ headers, &block)
29
+ end
30
+
31
+ def create(warehouse_id, rack_id, shelf_id, body = {})
32
+ post(build_endpoint("#{WM_STORAGE_LOCATION_BASE_PATH}#{WM_SL_CREATE_STORAGE_LOCATION}",
33
+ warehouse: warehouse_id,
34
+ rack: rack_id,
35
+ shelf: shelf_id),
36
+ body)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,48 @@
1
+ module PlentyClient
2
+ module Warehouse
3
+ class Stock
4
+ include PlentyClient::Endpoint
5
+ include PlentyClient::Request
6
+
7
+ STOCK_MANAGEMENT_BY_WAREHOUSE_BASE_PATH = '/stockmanagement/warehouses/{warehouseId}'.freeze
8
+
9
+ LIST_STOCK = '/stock'.freeze
10
+ LIST_STOCK_BY_LOCATION = '/stock/storageLocations'.freeze
11
+ LIST_STOCK_MOVEMENTS = '/stock/movements'.freeze
12
+ CORRECT_STOCK = '/stock/correction'.freeze
13
+ BOOK_INCOMING_STOCK = '/stock/bookIncomingItems'.freeze
14
+
15
+ class << self
16
+ def list(warehouse_id, headers = {}, &block)
17
+ get(build_endpoint("#{STOCK_MANAGEMENT_BY_WAREHOUSE_BASE_PATH}#{LIST_STOCK}",
18
+ warehouse: warehouse_id),
19
+ headers, &block)
20
+ end
21
+
22
+ def list_movements(warehouse_id, headers = {}, &block)
23
+ get(build_endpoint("#{STOCK_MANAGEMENT_BY_WAREHOUSE_BASE_PATH}#{LIST_STOCK_MOVEMENTS}",
24
+ warehouse: warehouse_id),
25
+ headers, &block)
26
+ end
27
+
28
+ def list_by_location(warehouse_id, headers = {}, &block)
29
+ get(build_endpoint("#{STOCK_MANAGEMENT_BY_WAREHOUSE_BASE_PATH}#{LIST_STOCK_BY_LOCATION}",
30
+ warehouse: warehouse_id),
31
+ headers, &block)
32
+ end
33
+
34
+ def correction(warehouse_id, body = {})
35
+ put(build_endpoint("#{STOCK_MANAGEMENT_BY_WAREHOUSE_BASE_PATH}#{CORRECT_STOCK}",
36
+ warehouse: warehouse_id),
37
+ body)
38
+ end
39
+
40
+ def book_incoming(warehouse_id, body = {})
41
+ put(build_endpoint("#{STOCK_MANAGEMENT_BY_WAREHOUSE_BASE_PATH}#{BOOK_INCOMING_STOCK}",
42
+ warehouse: warehouse_id),
43
+ body)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -23,6 +23,9 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency 'bundler', '~> 1.13'
24
24
  spec.add_development_dependency 'rake', '~> 10.0'
25
25
  spec.add_development_dependency 'rspec', '~> 3.0'
26
+ spec.add_development_dependency 'webmock', '~> 3.0'
27
+ spec.add_development_dependency 'guard-rspec', '~> 4.7'
28
+ spec.add_development_dependency 'pry', '~> 0.11'
26
29
 
27
30
  spec.add_runtime_dependency 'json', '~> 1.8', '>= 1.8.0'
28
31
  spec.add_runtime_dependency 'faraday', '~> 0.9'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plenty_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dariusch Ochlast
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-22 00:00:00.000000000 Z
11
+ date: 2017-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,48 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.7'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4.7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.11'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.11'
55
97
  - !ruby/object:Gem::Dependency
56
98
  name: json
57
99
  requirement: !ruby/object:Gem::Requirement
@@ -121,10 +163,16 @@ files:
121
163
  - ".travis.yml"
122
164
  - CODE_OF_CONDUCT.md
123
165
  - Gemfile
166
+ - Guardfile
124
167
  - LICENSE.txt
125
168
  - README.md
126
169
  - Rakefile
127
170
  - lib/plenty_client.rb
171
+ - lib/plenty_client/account.rb
172
+ - lib/plenty_client/account/contact.rb
173
+ - lib/plenty_client/account/contact/address.rb
174
+ - lib/plenty_client/account/contact/bank.rb
175
+ - lib/plenty_client/account/contact/type.rb
128
176
  - lib/plenty_client/accounting.rb
129
177
  - lib/plenty_client/authentication.rb
130
178
  - lib/plenty_client/authorization.rb
@@ -217,6 +265,16 @@ files:
217
265
  - lib/plenty_client/order/shipping/profile.rb
218
266
  - lib/plenty_client/order/shipping/service_provider.rb
219
267
  - lib/plenty_client/order_summary.rb
268
+ - lib/plenty_client/payment.rb
269
+ - lib/plenty_client/payment/contact.rb
270
+ - lib/plenty_client/payment/method.rb
271
+ - lib/plenty_client/payment/method_name.rb
272
+ - lib/plenty_client/payment/order.rb
273
+ - lib/plenty_client/payment/property.rb
274
+ - lib/plenty_client/payment/property/type.rb
275
+ - lib/plenty_client/payment/property/type/name.rb
276
+ - lib/plenty_client/payment/status.rb
277
+ - lib/plenty_client/payment/transaction.rb
220
278
  - lib/plenty_client/request.rb
221
279
  - lib/plenty_client/sales_price/account.rb
222
280
  - lib/plenty_client/sales_price/country.rb
@@ -225,8 +283,15 @@ files:
225
283
  - lib/plenty_client/sales_price/name.rb
226
284
  - lib/plenty_client/sales_price/online_store.rb
227
285
  - lib/plenty_client/sales_price/referrer.rb
286
+ - lib/plenty_client/stock.rb
228
287
  - lib/plenty_client/ticket.rb
229
288
  - lib/plenty_client/version.rb
289
+ - lib/plenty_client/warehouse.rb
290
+ - lib/plenty_client/warehouse/management.rb
291
+ - lib/plenty_client/warehouse/management/rack.rb
292
+ - lib/plenty_client/warehouse/management/shelf.rb
293
+ - lib/plenty_client/warehouse/management/storage_location.rb
294
+ - lib/plenty_client/warehouse/stock.rb
230
295
  - lib/plenty_client/webstore.rb
231
296
  - plenty_client.gemspec
232
297
  homepage: https://github.com/Dariusch/plenty_client