Skip to content

Commit 22aacab

Browse files
Manuel MéndezManuel Méndez
authored andcommitted
Modify OrderCreateChargeResponse
1 parent 12b2628 commit 22aacab

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

lib/conekta/conekta_structs.ex

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,19 @@ end
358358

359359
defmodule Conekta.OrderCreateChargeResponse do
360360
@moduledoc false
361-
defstruct amount: nil
361+
defstruct amount: nil,
362+
created_at: nil,
363+
currency: nil,
364+
customer_id: nil,
365+
description: nil,
366+
fee: nil,
367+
id: nil,
368+
livemode: nil,
369+
object: nil,
370+
order_id: nil,
371+
paid_at: nil,
372+
payment_method: nil,
373+
status: nil
362374
end
363375

364376
defmodule Conekta.WebHookLogs do

lib/orders.ex

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ defmodule Conekta.Orders do
77
Endpoint: https://api.conekta.io/orders
88
"""
99
alias Conekta.Client
10+
alias Conekta.ErrorResponse
1011
alias Conekta.Handler
1112
alias Conekta.OrderChargesResponse
1213
alias Conekta.OrderCreateChargeResponse
@@ -116,7 +117,7 @@ defmodule Conekta.Orders do
116117
end
117118
end
118119

119-
defp parse_response(%{"data" => %{"object" => "order"} = data}) do
120+
defp parse_response(%{"data" => %{"object" => "order"} = data}) do
120121
data
121122
|> Poison.encode!()
122123
|> Poison.decode!(as: %OrdersCreateResponse{})
@@ -130,13 +131,31 @@ defmodule Conekta.Orders do
130131
|> then(&{:ok, &1})
131132
end
132133

133-
defp parse_response(data) do
134+
defp parse_response(%{"object" => "charge"} = data) do
135+
data
136+
|> Poison.encode!()
137+
|> Poison.decode!(as: %OrderCreateChargeResponse{})
138+
|> then(&{:ok, &1})
139+
end
140+
141+
defp parse_response(%{"data" => %{"object" => "charge"} = data}) do
134142
data
135143
|> Poison.encode!()
136144
|> Poison.decode!(as: %OrderCreateChargeResponse{})
137145
|> then(&{:ok, &1})
138146
end
139147

148+
defp parse_response(%{"object" => "error"} = data) do
149+
data
150+
|> Poison.encode!()
151+
|> Poison.decode!(as: %ErrorResponse{})
152+
|> then(&{:ok, &1})
153+
end
154+
155+
defp parse_response(data) do
156+
{:ok, data}
157+
end
158+
140159
def refund(order_id, refund) do
141160
case Client.post_request("orders/" <> order_id <> "/refunds", refund) do
142161
{:ok, content} ->

0 commit comments

Comments
 (0)