示例#1
0
    def from_deprecated_dict(deprecated_dict: Dict):
        if "event_id" in deprecated_dict and isinstance(
                deprecated_dict["event_id"], str):
            new_event_id = deprecated_dict["event_id"].rjust(
                EventId.length(), "0")
            deprecated_dict["event_id"] = EventId(new_event_id)
        if "event_occurred_on" in deprecated_dict and isinstance(
                deprecated_dict["event_occurred_on"], str):
            deprecated_dict["event_occurred_on"] = datetime.strptime(
                deprecated_dict["event_occurred_on"], TIME_FORMAT)

        if ("event_version" in deprecated_dict
                and isinstance(deprecated_dict["event_version"], str)
                and len(deprecated_dict["event_version"]) > 1):
            deprecated_dict["event_version"] = "0"

        info_id = None
        if "info_id" in deprecated_dict and isinstance(
                deprecated_dict["info_id"], dict):
            from petisco.domain.aggregate_roots.info_id import InfoId

            info_id = InfoId.from_dict(deprecated_dict.pop("info_id"))

        event = Event(deprecated_dict)
        event.add_info_id(info_id)

        return event
def test_should_create_info_id_from_headers_none():

    info_id = InfoId.from_headers(None)

    assert info_id.client_id is None
    assert info_id.user_id is None
    assert info_id.correlation_id is not None  # autogenerated
def test_should_create_info_id_from_headers_empty():
    headers = {}

    info_id = InfoId.from_headers(headers)

    assert info_id.client_id is None
    assert info_id.user_id is None
    assert info_id.correlation_id is not None  # autogenerated
def test_should_create_info_id_from_headers_with_only_correlation_id(
        given_any_correlation_id):

    headers = {"X-Correlation-Id": given_any_correlation_id.value}

    info_id = InfoId.from_headers(headers)

    assert info_id.client_id is None
    assert info_id.user_id is None
    assert info_id.correlation_id == given_any_correlation_id
def test_should_create_info_id_from_headers(given_any_client_id,
                                            given_any_user_id,
                                            given_any_correlation_id):
    headers = {
        "X-Onboarding-Clientid": given_any_client_id.value,
        "X-Onboarding-Userid": given_any_user_id.value,
        "X-Correlation-Id": given_any_correlation_id.value,
    }

    info_id = InfoId.from_headers(headers)

    assert headers["X-Onboarding-Clientid"] == info_id.client_id.value
    assert headers["X-Onboarding-Userid"] == info_id.user_id.value
    assert headers["X-Correlation-Id"] == info_id.correlation_id.value
示例#6
0
    def execute(self, headers: dict) -> Result[InfoId, Error]:
        auth_token = headers.get("Authorization")

        if not auth_token:
            return Failure(
                InvalidTokenError(
                    message=
                    f"This entry point expects a valid {self.accepted_tokens.token_type} Token"
                ))

        token = self.token_decoder.execute(auth_token).unwrap_or_return()

        self.ensure_required_token(token).unwrap_or_return()

        info_id = InfoId.from_token(token).update_from_headers(headers)

        return Success(info_id)
示例#7
0
 def random():
     return InfoId(
         ClientId("petisco-client"), UserId.generate(), CorrelationId.generate()
     )
示例#8
0
 def execute(self, headers: dict) -> Result[InfoId, Error]:
     return Success(InfoId.from_headers(headers))
示例#9
0
def given_info_id_only_correlation_id(given_any_correlation_id) -> InfoId:
    return InfoId(correlation_id=given_any_correlation_id)
示例#10
0
def given_any_info_id(given_any_client_id, given_any_user_id,
                      given_any_correlation_id) -> InfoId:
    return InfoId(given_any_client_id, given_any_user_id,
                  given_any_correlation_id)