Skip to content

Commit

Permalink
Observaciones de formato
Browse files Browse the repository at this point in the history
  • Loading branch information
rogelioLpz committed Sep 25, 2019
1 parent 0fa73b6 commit 706387c
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 69 deletions.
130 changes: 66 additions & 64 deletions arcus/exc.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,185 +46,185 @@ def __str__(self):


class InvalidAccountNumber(UnprocessableEntity):
def __init__(self, code: str, account_number: str, biller_id: int,
def __init__(self, account_number: str, biller_id: int,
**kwargs):
message = (
f'{account_number} is an invalid account_number for biller '
f'{biller_id}'
)
super().__init__(
code, message, biller_id=biller_id, account_number=account_number,
**kwargs
message=message, biller_id=biller_id,
account_number=account_number, **kwargs
)


class InvalidOperation(UnprocessableEntity):
def __init__(self, code: str, transaction_id: Union[int, str], **kwargs):
def __init__(self, transaction_id: Union[int, str], **kwargs):
message = f'Unable to cancel the transaction {transaction_id}'
super().__init__(code, message=message, transaction_id=transaction_id,
super().__init__(message=message, transaction_id=transaction_id,
**kwargs)


class InvalidAmount(UnprocessableEntity):
def __init__(self, code: str, amount: float, **kwargs):
def __init__(self, amount: float, **kwargs):
message = f'Invalid amount: {amount}'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class AlreadyPaid(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Payment already made'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class RecurrentPayments(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Recurrent payments enabled'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class DuplicatedPayment(UnprocessableEntity):
def __init__(self, code: str, amount: float, **kwargs):
def __init__(self, amount: float, **kwargs):
message = f'Duplicated payment for {amount}'
super().__init__(code, message, amount=amount, **kwargs)
super().__init__(message=message, amount=amount, **kwargs)


class IncompleteAmount(UnprocessableEntity):
def __init__(self, code: str, amount: float, **kwargs):
def __init__(self, amount: float, **kwargs):
message = (
f'Incomplete payment amount of {amount}, must pay full balance'
)
super().__init__(code, message, amount=amount, **kwargs)
super().__init__(message=message, amount=amount, **kwargs)


class Forbidden(ArcusException):
"""Method Not Allowed"""


class UnexpectedError(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Unexpected error. Failed to make the consult'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidOrMissingParameters(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid or missing parameters'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidBalance(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Account Balance is 0 or not enough'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class FailedConsult(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Failed to make the consult, please try again later'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class LimitExceeded(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Limit of transactions exceeded'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class BillerMaintenance(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Biller maintenance in progress, please try again later'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class ReversalNotSupported(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Reversal not supported'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class BillerConnection(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Timeout from biller'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class CancellationError(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Error with performing the cancellation'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class OverdueBill(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Overdue Bill'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidPhone(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid Phone Number'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class FraudSuspected(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Fraud suspected'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidCurrency(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid Currency'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidCompany(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid company'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidBarCode(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid Barcode Format.'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidCustomerStatus(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid Customer Status.'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class DailyPaymentsLimit(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'The maximum number of payments on this day was reached'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class BalanceNotFound(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Can\'t get balance.'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidSubscription(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Invalid Subscription ID. Verify the ID or create a new'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class InvalidPOS(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'POS number is invalid'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


class AccessDenied(UnprocessableEntity):
def __init__(self, code: str, **kwargs):
def __init__(self, **kwargs):
message = f'Processor Access Denied'
super().__init__(code, message=message, **kwargs)
super().__init__(message=message, **kwargs)


ARCUS_EXCEPTIONS = dict(
Expand Down Expand Up @@ -253,7 +253,7 @@ def __init__(self, code: str, **kwargs):
R23=ReversalNotSupported,
R24=BillerConnection,
R25=CancellationError,
R26=ReversalNotSupported,
R26=InvalidOperation,
R27=OverdueBill,
R28=InvalidAccountNumber,
R29=InvalidAccountNumber,
Expand All @@ -277,7 +277,7 @@ def __init__(self, code: str, **kwargs):
R100=InvalidBalance,
R101=BalanceNotFound,
R102=InvalidAmount,
R103=ReversalNotSupported,
R103=InvalidOperation,
R104=InvalidSubscription,
R105=ReversalNotSupported,
R114=InvalidAmount,
Expand All @@ -293,12 +293,14 @@ def __init__(self, code: str, **kwargs):

def raise_arcus_exception(
ex: UnprocessableEntity,
account_number: str,
biller_id: int,
amount: Optional[float] = 0):
account_number: Optional[str] = "",
biller_id: Optional[int] = 0,
amount: Optional[float] = 0,
transaction_id: Optional[Union[int, str]] = 0):
exc = ARCUS_EXCEPTIONS[ex.code]
raise exc(
ex.code,
code=ex.code,
account_number=account_number,
biller_id=biller_id,
amount=amount)
amount=amount,
transaction_id=transaction_id)
7 changes: 2 additions & 5 deletions arcus/resources/transactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from dataclasses import dataclass, field
from typing import Union

from arcus.exc import InvalidOperation, UnprocessableEntity
from arcus.exc import UnprocessableEntity, raise_arcus_exception

from .base import Resource

Expand Down Expand Up @@ -38,9 +38,6 @@ def cancel(self) -> dict:
try:
resp = self._client.post('/transaction/cancel', dict(id=self.id))
except UnprocessableEntity as ex:
if ex.code in ['R26', 'R103']:
raise InvalidOperation(ex.code, self.id)
else:
raise
raise_arcus_exception(ex, transaction_id=self.id)
self.refresh()
return resp

0 comments on commit 706387c

Please sign in to comment.