Class: OpenPayU::Order
- Inherits:
-
Object
- Object
- OpenPayU::Order
- Defined in:
- lib/openpayu/order.rb
Overview
A class responsible for dealing with Order
Class Method Summary collapse
-
.build_notify_response(request_id) ⇒ String
Creates OrderNotifyResponse to send to PayU.
-
.cancel(order_id) ⇒ Documents::Response
Cancels Order - Sends to PayU OrderCancelRequest.
-
.consume_notification(request) ⇒ Documents::Response
Transforms OrderNotifyRequest to [Documents::Response].
-
.create(order) ⇒ Documents::Response
Creates new Order - Sends to PayU OrderCreateRequest.
-
.retrieve(order_id) ⇒ Documents::Response
Retrieves information about the order - Sends to PayU OrderRetrieveRequest.
-
.status_update(status_update) ⇒ Documents::Response
Updates Order status - Sends to PayU OrderStatusUpdateRequest.
Class Method Details
.build_notify_response(request_id) ⇒ String
Creates OrderNotifyResponse to send to PayU
109 110 111 112 113 114 115 |
# File 'lib/openpayu/order.rb', line 109 def self.build_notify_response(request_id) response = Models::NotifyResponse.new({ res_id: request_id, status: { 'StatusCode' => 'SUCCESS' } }) response.prepare_data('OrderNotifyResponse') end |
.cancel(order_id) ⇒ Documents::Response
Cancels Order
-
Sends to PayU OrderCancelRequest
73 74 75 76 77 78 79 80 81 |
# File 'lib/openpayu/order.rb', line 73 def self.cancel(order_id) url = Configuration.get_base_url + "order/#{order_id}." + Configuration.data_format request = Documents::Request.new(url) Documents::Response.new( Connection.delete(url, request.body, request.headers), 'OrderCancelResponse' ) end |
.consume_notification(request) ⇒ Documents::Response
Transforms OrderNotifyRequest to [Documents::Response]
90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/openpayu/order.rb', line 90 def self.consume_notification(request) response = Documents::Response.new( { response: request, request: nil }, 'OrderNotifyRequest' ) if !response.nil? response else raise( WrongNotifyRequest, "Invalid OrderNotifyRequest: #{request.inspect}" ) end end |
.create(order) ⇒ Documents::Response
Creates new Order
-
Sends to PayU OrderCreateRequest
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/openpayu/order.rb', line 32 def self.create(order) @order = Models::Order.new(order) if @order.all_objects_valid? url = Configuration.get_base_url + 'order.' + Configuration.data_format request = Documents::Request.new(@order.prepare_data('OrderCreateRequest')) Documents::Response.new( Connection.post(url, request.body, request.headers), 'OrderCreateResponse' ) else raise WrongOrderParameters.new(@order) end end |
.retrieve(order_id) ⇒ Documents::Response
Retrieves information about the order
-
Sends to PayU OrderRetrieveRequest
14 15 16 17 18 19 20 21 22 |
# File 'lib/openpayu/order.rb', line 14 def self.retrieve(order_id) url = Configuration.get_base_url + "order/#{order_id}." + Configuration.data_format request = Documents::Request.new(url) Documents::Response.new( Connection.get(url, request.body, request.headers), 'OrderRetrieveResponse' ) end |
.status_update(status_update) ⇒ Documents::Response
Updates Order status
-
Sends to PayU OrderStatusUpdateRequest
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/openpayu/order.rb', line 55 def self.status_update(status_update) @update = OpenPayU::Models::StatusUpdate.new status_update url = Configuration.get_base_url + "order/#{@update.order_id}/status." + Configuration.data_format request = Documents::Request.new(@update.prepare_data('OrderStatusUpdateRequest')) Documents::Response.new( Connection.put(url, request.body, request.headers), 'OrderStatusUpdateResponse' ) end |