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
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)
def random(): return InfoId( ClientId("petisco-client"), UserId.generate(), CorrelationId.generate() )
def execute(self, headers: dict) -> Result[InfoId, Error]: return Success(InfoId.from_headers(headers))
def given_info_id_only_correlation_id(given_any_correlation_id) -> InfoId: return InfoId(correlation_id=given_any_correlation_id)
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)