adapter pattern is created #433
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I used it.
In this API there are three different classes called csbc.py, jhu.py, and nyt.py from where we get all data. Here we need to call 3 different types of methods for getting same data. That's why I created an adapter that provides data from the appropriate source with one single method.
How I made it.
In the
services/location/__init__.pyfile I made an adapter class called LocationService. This class provides two common methods for any type of source. The name of these methods areget_all() andget(). I am storing the object of adapter classes inside therequest.state.source. Hence when we call it from routerv2.pythen we only need to watch the methods of the adapter.