Skip to content

Commit

Permalink
[FIX] Code review and process improvements for coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
cristiano-one authored and marcelsavegnago committed Jun 20, 2022
1 parent dfabfd7 commit e63ecc9
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 41 deletions.
30 changes: 12 additions & 18 deletions payment_pagseguro/controllers/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,23 @@ class PagseguroController(http.Controller):
def pagseguro_s2s_create_json_3ds(self, verify_validity=False, **kwargs):
if not kwargs.get("partner_id"):
kwargs = dict(kwargs, partner_id=request.env.user.partner_id.id)
token = (
request.env["payment.acquirer"]
.browse(int(kwargs.get("acquirer_id")))
.s2s_process(kwargs)
)
token = request.env["payment.acquirer"].browse(
int(kwargs.get("acquirer_id"))).s2s_process(kwargs)

if not token:
res = {"result": False, }
else:
res = {
"result": False,
"result": True,
"id": token.id,
"short_name": token.short_name,
"3d_secure": False,
"verified": False,
}
return res

res = {
"result": True,
"id": token.id,
"short_name": token.short_name,
"3d_secure": False,
"verified": False,
}

if verify_validity:
token.validate()
res["verified"] = token.verified
if verify_validity:
token.validate()
res["verified"] = token.verified

return res

Expand Down
2 changes: 2 additions & 0 deletions payment_pagseguro/data/payment_acquirer_data.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
<field name="environment">test</field>
<field name="save_token">none</field>
<field name="payment_flow">s2s</field>
<field name="capture_manually">True</field>

<field
name="pre_msg"
><![CDATA[
Expand Down
56 changes: 34 additions & 22 deletions payment_pagseguro/models/payment_transaction.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,16 +105,17 @@ def pagseguro_s2s_capture_transaction(self):
self.write(
{
"date": fields.datetime.now(),
"acquirer_reference": res,
"acquirer_reference": res['id'],
"state_message": res['payment_response']['message'],
}
)
self._set_transaction_done()
self.execute_callback()
else:
self.sudo().write(
{
"state_message": res,
"acquirer_reference": res,
"state_message": res['error_messages'][0]['message'],
"acquirer_reference": res['error_messages'][0]['code'],
"date": fields.datetime.now(),
}
)
Expand All @@ -126,9 +127,22 @@ def pagseguro_s2s_void_transaction(self):
"pagseguro_s2s_void_transaction: Sending values to URL %s",
self.pagseguro_s2s_void_link,
)
r = requests.put(
headers = {
"Authorization": self.acquirer_id.pagseguro_token,
"x-api-version": "4.0",
}

params = {
"charge_id": self.id,
"amount": {
"value": int(self.amount * 100),
}
}

r = requests.post(
self.pagseguro_s2s_void_link,
headers=self.acquirer_id._get_pagseguro_api_headers(),
headers=headers,
json=params,
)
res = r.json()
_logger.info(
Expand All @@ -144,15 +158,16 @@ def pagseguro_s2s_void_transaction(self):
self.write(
{
"date": fields.datetime.now(),
"acquirer_reference": res,
"acquirer_reference": res['id'],
"state_message": res['payment_response']['message'],
}
)
self._set_transaction_cancel()
else:
self.sudo().write(
{
"state_message": res,
"acquirer_reference": res,
"state_message": res['error_messages'][0]['message'],
"acquirer_reference": res['error_messages'][0]['code'],
"date": fields.datetime.now(),
}
)
Expand Down Expand Up @@ -203,30 +218,27 @@ def _pagseguro_s2s_validate_tree(self, tree):
self.payment_token_id.verified = True
return True
else:
error = tree.get("message")
_logger.warn(error)
self.sudo().write(
{
"state_message": error,
"acquirer_reference": tree.get("id"),
"date": fields.datetime.now(),
}
)
self._set_transaction_cancel()
self._validate_tree_message(tree)
return False

self._validate_tree_message(tree)

return False

@api.multi
def _validate_tree_message(self, tree):
if tree.get("message"):
error = tree.get("message")
_logger.warn(error)
self.sudo().write(
{
"state_message": error,
"acquirer_reference": tree.get("id"),
"date": fields.datetime.now(),
}
)
self._set_transaction_cancel()

return False

@api.multi
def _get_pagseguro_charge_params(self):
"""
Expand All @@ -240,7 +252,7 @@ def _get_pagseguro_charge_params(self):
"""

CHARGE_PARAMS = {
"reference_id": str(self.payment_token_id.acquirer_id),
"reference_id": str(self.payment_token_id.acquirer_id.id),
"description": self.display_name[:13],
"amount": {
# Charge is in BRL cents -> Multiply by 100
Expand All @@ -250,7 +262,7 @@ def _get_pagseguro_charge_params(self):
"payment_method": {
"type": "CREDIT_CARD",
"installments": 1,
"capture": True,
"capture": False,
"card": {
"encrypted": self.payment_token_id.pagseguro_card_token,
},
Expand Down
3 changes: 3 additions & 0 deletions payment_pagseguro/static/src/js/pagseguro_tour.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,11 @@ odoo.define("payment_pagseguro.tour", function (require){
'method': 'write',
'args': [acquirer, {
'pagseguro_token': "8EC2714B10DC42DE882BC341A5366899",
'environment': 'test',
'website_published': true,
'journal_id': 1,
'capture_manually': true,
'payment_flow': 's2s',
}],
});
});
Expand Down
13 changes: 13 additions & 0 deletions payment_pagseguro/tests/test_pagseguro.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Copyright 2020 KMEE INFORMATICA LTDA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

import time
import logging

import odoo


Expand All @@ -14,3 +17,13 @@ def test_buy_pagseguro(self):
login="admin",
timeout=20000,
)

tx = self.env['payment.transaction'].search([], limit=1, order='id desc')
tx.pagseguro_s2s_capture_transaction()
self.assertEqual(tx.state, 'done',
'transaction state should be authorized')

time.sleep(3)
tx.pagseguro_s2s_void_transaction()
self.assertEqual(tx.state, 'done',
'transaction state should be done')
2 changes: 1 addition & 1 deletion payment_pagseguro/views/payment_acquirer.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<odoo>

<data noupdate="1">
<data noupdate="0">

<record model="ir.ui.view" id="payment_acquirer_form_view" >
<field name="name">payment.acquirer.form (in payment_pagseguro)</field>
Expand Down

0 comments on commit e63ecc9

Please sign in to comment.