class Wegift::Order
Constants
- DELIVERY_FORMATS
- DELIVERY_METHODS
- PATH
Attributes
amount[RW]
request/payload
barcode_format[RW]
response/success
barcode_string[RW]
response/success
code[RW]
response/success
currency_code[RW]
request/payload
cvc2[RW]
response/success
delivery_email[RW]
request/payload
delivery_format[RW]
request/payload
delivery_method[RW]
request/payload
delivery_url[RW]
response/success
expiry_date[RW]
response/success
external_ref[RW]
request/payload
notification_email[RW]
request/payload
order_id[RW]
response/success
pin[RW]
response/success
product_code[RW]
request/payload
Public Class Methods
new(params = {})
click to toggle source
Calls superclass method
Initializable::new
# File lib/wegift/models/order.rb, line 18 def initialize(params = {}) super(params) # default/fallback: 'direct'/'raw' @delivery_method = params[:delivery_method] || DELIVERY_METHODS[:direct] @delivery_format = params[:delivery_format] || DELIVERY_FORMATS[:code] end
Public Instance Methods
parse(response)
click to toggle source
Calls superclass method
Wegift::Response#parse
# File lib/wegift/models/order.rb, line 45 def parse(response) super(response) # nested status/error object # assuming root "status" is always "SUCCESS" if "e_code" is set # { # "e_code": { # "error_code": "EC001", # "error_string": "Error retrieving E-Code from data processor", # "status": "ERROR" # }, # "error_code": null, # "error_details": null, # "error_string": null, # "order_id": 18, # "status": "SUCCESS" # } # override root "status" if set if @payload['e_code'] && @payload['e_code']['status'].eql?(STATUS[:error]) @status = @payload['e_code']['status'] unless @payload['e_code']['error_code'].blank? @error_code = @payload['e_code']['error_code'] end unless @payload['e_code']['error_string'].blank? @error_string = @payload['e_code']['error_string'] end unless @payload['e_code']['error_details'].blank? @error_details = @payload['e_code']['error_details'] end end # set valid data if @payload['e_code'] && @payload['e_code']['status'].eql?(STATUS[:success]) @code = @payload['e_code']['code'] @expiry_date = @payload['e_code']['expiry_date'] @pin = @payload['e_code']['pin'] @cvc2 = @payload['e_code']['cvc2'] @delivery_url = @payload['e_code']['delivery_url'] @barcode_string = @payload['e_code']['barcode_string'] @barcode_format = @payload['e_code']['barcode_format'] end @order_id = @payload['order_id'] self end
payload()
click to toggle source
# File lib/wegift/models/order.rb, line 25 def payload { product_code: @product_code, currency_code: @currency_code, amount: @amount, delivery_method: @delivery_method, delivery_format: @delivery_format, notification_email: @notification_email, delivery_email: @delivery_email, external_ref: @external_ref } end
post(ctx)
click to toggle source
Order
Digital Card POST /api/b2b-sync/v1/order-digital-card
# File lib/wegift/models/order.rb, line 40 def post(ctx) response = ctx.request(:post, PATH, payload) parse(response) end