Exemple #1
0
    def test_should_return_right(self):
        result = Right('some value')

        assert result.is_right
        assert not result.is_left
        assert result.value == 'some value'
        assert isinstance(result, Either)
Exemple #2
0
def _handle_result(konduto_response: Response) -> Either:
    if konduto_response.ok:
        return Right(konduto_response.json())
    else:
        return Left(
            konduto_response.json()) if konduto_response.content else Left(
                konduto_response.reason)
Exemple #3
0
    def load(self, email) -> Union[Right, Left]:
        result = self.get(f'{ENDPOINT}/{email}')

        if result.is_right:
            return Right(
                KondutoRestrictEmailResponseMapper.to_model(result.value))

        return result
Exemple #4
0
    def create(self,
               payload: KondutoRestrictEmailRequest) -> Union[Right, Left]:
        result = self.post(ENDPOINT, payload.json)

        if result.is_right:
            return Right(
                KondutoRestrictEmailResponseMapper.to_model(result.value))

        return result
Exemple #5
0
    def remove(self, email: str) -> Union[Right, Left]:
        result = self.delete(f'{ENDPOINT}/{email}')

        if result.is_right:
            konduto_response = result.value
            konduto_response['email_address'] = email
            return Right(
                KondutoRestrictEmailResponseMapper.to_model(konduto_response))

        return result
Exemple #6
0
    def load(self, order_id: str) -> Union[Right, Left]:
        result = self.get(f'{ENDPOINT}/{order_id}')

        if result.is_right:
            hooks = {date: date_str_to_date, Decimal: float_to_decimal, datetime: datetime_str_to_datetime,
                     int: to_int}
            response = from_dict(data_class=KondutoOrderResponse, data=result.value['order'],
                                 config=Config(cast=[Enum, int], type_hooks=hooks))
            return Right(response)

        return result
Exemple #7
0
    def update(self, email: str,
               payload: KondutoRestrictEmailRequest) -> Union[Right, Left]:
        result = self.put(f'{ENDPOINT}/{email}', payload.json_to_update)

        if result.is_right:
            konduto_response = result.value
            konduto_response['email_address'] = email
            return Right(
                KondutoRestrictEmailResponseMapper.to_model(konduto_response))

        return result
Exemple #8
0
    def create(self, payload: KondutoOrderRequest) -> Union[Right, Left]:
        result = self.post(ENDPOINT, payload.json)

        if result.is_right:
            response_order = result.value['order']
            recommendation = KondutoRecommendation.from_string(response_order['recommendation'])
            order_response = KondutoOrderResponse(id=response_order['id'], score=response_order['score'],
                                                  recommendation=recommendation,
                                                  status=KondutoOrderStatus.from_string(response_order['status']))
            return Right(order_response)

        return result