Class: GunBroker::User::OrdersDelegate
- Inherits:
-
Object
- Object
- GunBroker::User::OrdersDelegate
- Includes:
- Order::Constants, TokenHeader
- Defined in:
- lib/gun_broker/user/orders_delegate.rb
Overview
Used to scope Order actions by GunBroker::User.
Constant Summary
Constants included from Order::Constants
Order::Constants::ACCEPTED_FLAG_KEYS, Order::Constants::SHIPPING_CARRIERS
Instance Method Summary collapse
-
#find(order_id) ⇒ Order
Finds a specific User's Order by ID.
-
#find!(order_id) ⇒ Order
Same as #find but raises GunBroker::Error::NotFound if no order is found.
-
#initialize(user) ⇒ OrdersDelegate
constructor
A new instance of OrdersDelegate.
-
#set_flags!(order_id, flags = {}) ⇒ GunBroker::Order
Sets any of 3 available Order flags.
-
#sold(options = {}) ⇒ Array<Order>
Sold Orders for the User.
-
#submit_shipping(*args) ⇒ GunBroker::Order
Submits shipping details for an Order.
-
#submit_shipping!(order_id, tracking_number, carrier_name) ⇒ GunBroker::Order
Same as #submit_shipping but raises exceptions on error.
Constructor Details
#initialize(user) ⇒ OrdersDelegate
Returns a new instance of OrdersDelegate.
13 14 15 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 13 def initialize(user) @user = user end |
Instance Method Details
#find(order_id) ⇒ Order
Finds a specific User's Order by ID. Calls Order.find to get full Order details.
20 21 22 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 20 def find(order_id) GunBroker::Order.find(order_id, {}, token_header(@user.token)) end |
#find!(order_id) ⇒ Order
Same as #find but raises GunBroker::Error::NotFound if no order is found.
27 28 29 30 31 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 27 def find!(order_id) order = find(order_id) raise GunBroker::Error::NotFound.new("Couldn't find order with ID '#{order_id}'") if order.nil? order end |
#set_flags!(order_id, flags = {}) ⇒ GunBroker::Order
Sets any of 3 available Order flags.
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 79 def set_flags!(order_id, flags = {}) unless flags.keys.all? { |k| ACCEPTED_FLAG_KEYS.include?(k) } raise ArgumentError.new("Only accepted keys for flag toggling are #{ACCEPTED_FLAG_KEYS.to_sentence}") end params = { 'PaymentReceived' => flags[:payment_received], 'FFLReceived' => flags[:ffl_received], 'OrderShipped' => flags[:order_shipped], } GunBroker::API.put("/Orders/#{order_id}/Flags", cleanup_nil_params(params), token_header(@user.token)) find!(order_id) end |
#sold(options = {}) ⇒ Array<Order>
GET /OrdersSold
Sold Orders for the User.
37 38 39 40 41 42 43 44 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 37 def sold( = {}) params = [ *params_for(:timeframe), *params_for(:itemid, ) ].to_h @sold ||= fetch_orders(:OrdersSold, params) end |
#submit_shipping(*args) ⇒ GunBroker::Order
Submits shipping details for an Order.
49 50 51 52 53 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 49 def submit_shipping(*args) submit_shipping!(*args) rescue GunBroker::Error false end |
#submit_shipping!(order_id, tracking_number, carrier_name) ⇒ GunBroker::Order
Same as #submit_shipping but raises exceptions on error.
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/gun_broker/user/orders_delegate.rb', line 62 def submit_shipping!(order_id, tracking_number, carrier_name) carrier_key = SHIPPING_CARRIERS.find { |k, v| v.casecmp(carrier_name).zero? }.try(:first) params = { 'TrackingNumber' => tracking_number, 'Carrier' => carrier_key, } GunBroker::API.put("/Orders/#{order_id}/Shipping", cleanup_nil_params(params), token_header(@user.token)) find!(order_id) end |