Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion craftgate/adapter/fraud_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ def search_fraud_rules(self, request: SearchFraudRuleRequest) -> FraudRuleRespon
url=self.request_options.base_url + path,
headers=headers,
body=None,
response_type=FraudCheckListResponse
response_type=FraudRuleResponse
)

def update_fraud_check_status(self, request: UpdateFraudCheckStatusRequest) -> None:
Expand Down
1 change: 1 addition & 0 deletions craftgate/model/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
from .fraud_check_status import FraudCheckStatus
from .fraud_operation import FraudOperation
from .fraud_result import FraudResult
from .fraud_rule_scope import FraudRuleScope
from .fraud_value import FraudValue
from .fraud_value_type import FraudValueType
from .loyalty import Loyalty
Expand Down
6 changes: 6 additions & 0 deletions craftgate/model/fraud_rule_scope.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
from enum import Enum


class FraudRuleScope(str, Enum):
MERCHANT = "MERCHANT"
GLOBAL = "GLOBAL"
3 changes: 3 additions & 0 deletions craftgate/request/search_fraud_rule_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from craftgate.model.fraud_action import FraudAction
from craftgate.model.fraud_operation import FraudOperation
from craftgate.model.fraud_rule_scope import FraudRuleScope
from craftgate.request.common.base_request import BaseRequest

class SearchFraudRuleRequest(BaseRequest):
Expand All @@ -13,13 +14,15 @@ def __init__(
max_created_date: Optional[datetime] = None,
action: Optional[FraudAction] = None,
operation: Optional[FraudOperation] = None,
scope: Optional[FraudRuleScope] = None,
page: Optional[int] = None,
size: Optional[int] = None,
) -> None:
self.page = page
self.size = size
self.action = action
self.operation = operation
self.scope = scope
self.name = name
self.min_created_date = min_created_date
self.max_created_date = max_created_date
2 changes: 2 additions & 0 deletions craftgate/response/dto/fraud_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def __init__(
rule_id: Optional[int] = None,
rule_name: Optional[str] = None,
rule_conditions: Optional[str] = None,
is_global_rule: Optional[bool] = None,
payment_id: Optional[int] = None,
payment_status: Optional[PaymentStatus] = None
) -> None:
Expand All @@ -29,5 +30,6 @@ def __init__(
self.rule_id = rule_id
self.rule_name = rule_name
self.rule_conditions = rule_conditions
self.is_global_rule = is_global_rule
self.payment_id = payment_id
self.payment_status = payment_status
4 changes: 3 additions & 1 deletion craftgate/response/dto/fraud_rule.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@ def __init__(
name: Optional[str] = None,
action: Optional[FraudAction] = None,
conditions: Optional[str] = None,
operations: Optional[List[FraudOperation]] = None
operations: Optional[List[FraudOperation]] = None,
is_global: Optional[bool] = None
) -> None:
self.id = id
self.status = status
self.action = action
self.name = name
self.conditions = conditions
self.operations = operations
self.is_global = is_global
11 changes: 10 additions & 1 deletion tests/test_fraud_adapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from datetime import datetime, timedelta

from craftgate import Craftgate, RequestOptions
from craftgate.model import FraudAction, FraudValueType, FraudCheckStatus
from craftgate.model import FraudAction, FraudValueType, FraudCheckStatus, FraudRuleScope
from craftgate.model.fraud_operation import FraudOperation
from craftgate.request import DeleteValueListRequest, FraudValueListRequest, RemoveValueFromValueListRequest, \
SearchFraudChecksRequest, UpdateFraudCheckStatusRequest
Expand Down Expand Up @@ -95,6 +95,15 @@ def test_search_fraud_rules(self):
self.assertIsNotNone(resp)
self.assertTrue(resp.items)

def test_search_global_fraud_rules(self):
req = SearchFraudRuleRequest(scope=FraudRuleScope.GLOBAL)
resp = self.fraud.search_fraud_rules(req)
print(resp)

self.assertIsNotNone(resp)
self.assertTrue(resp.items)
self.assertTrue(all(item.is_global for item in resp.items))

def test_update_fraud_check_status(self):
self.fraud.update_fraud_check_status(UpdateFraudCheckStatusRequest(
id=int(2613), check_status=FraudCheckStatus.FRAUD))
Expand Down
Loading