Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature / Communication Beta #100

Merged
merged 27 commits into from
Feb 14, 2024
Merged

Conversation

dncsvr
Copy link
Member

@dncsvr dncsvr commented Feb 9, 2024

Add communication feature and http client layer as a beta feature.

Tasks

  • Add http client layer
  • Add http and mock communication features
  • Add CommunicationFeature documentation

Additional Tasks

  • Add NoTransaction attribute and avoid transaction in middleware

@dncsvr dncsvr self-assigned this Feb 9, 2024
dncsvr added 15 commits February 9, 2024 12:45
- add `HttpCommunicationFeature` !!! not implemented !!!
- add temporary mock http client implementation
- refactor client factory and app settings usage
- move `TimeProviderExtensions` to `Core` folder
- add additional `MockCommuncation` feature tests
- minor edits to `ClientFactory`
- remove default response value and test case
- remove mock client implementation
- convert HttpDescriptor list artifact ro dictionary
- rename ClientFactory => HttpClientFactory
- client throws exception with an inner exception with response content
…ILING !!!

- add sample http request exception handler
- add `[NoTransaction]` attribute
- cannot perform local calls to test server
- use `ConfigureHttpClientDefaults` for default builder delegate
- edit documentation
- simlify `HttpClientFactory` and add generic type parameter
@dncsvr dncsvr marked this pull request as ready for review February 12, 2024 15:46
Copy link
Member

@cihandeniz cihandeniz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is not my final review.

i think there is more to refactor and simplify especially in default mock settings design.

first work on the comments in this review, then we can refactor it in a discord session

- move TimeProviderExtensions to System namespace
- revert ServiceNfr format change
- revert HttpClientExtensions to single line
- Move dictionary extensions to its own file
- return else from FlatTransactionMiddleware
- Add PullRequest record for test client
- Remove GetContentAsObject helper
- Mock Communication feedbacks
Copy link
Member

@cihandeniz cihandeniz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

almost there

- add `ClientException`
- refactor `HttpClientLayer` client registration
- rename test spec to `MockingClients`
- refactor builder for mock client setups
- minor edits
- add GetContentAsObject helper to Request
- Remove MockClientSetup record
- minor edits to MockClientBuilder
- add MockClientSetups
- move ForClient<T> helpers to mock client setups
- change parameter type to MockClientSetups in feature
@dncsvr dncsvr requested a review from cihandeniz February 14, 2024 08:20
@dncsvr dncsvr merged commit 99c1e01 into mouseless:main Feb 14, 2024
6 checks passed
@dncsvr dncsvr deleted the feature/communication-beta branch February 14, 2024 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants