TBD54566975 / didpay

Mobile app that provides a way for individuals to interact with PFIs via tbDEX
Apache License 2.0
6 stars 9 forks source link

Create request caching service #280

Open ethan-tbd opened 1 month ago

ethan-tbd commented 1 month ago

This request caching service will be used to:

  1. make requests to url
  2. return cached data for url
  3. request new data from backend at url
  4. update cache for url

callers of this will get two responses, like a stream of data where the first response is the cached response and the second response is the network response

perhaps using this as a custom hook similar to https://tanstack.com/query/latest

aashish-g03 commented 1 week ago

.take

github-actions[bot] commented 1 week ago

Thanks for taking this issue! Let us know if you have any questions!

aashish-g03 commented 1 week ago

@ethan-tbd,

I have implemented a solution that closely matches your requirements. You can find the example code here:

Flutter Caching Hook GitHub Repository

Please review it and let me know if it meets your needs. Additionally, I've provided a recording of the implementation for your reference:

Implementation Recording

Approach:

  1. Used SharedPreferences to store cache data persistently across sessions.
  2. Utilized streams to send multiple responses from the function, ensuring that the first response is the cached data and the subsequent one is the fresh network data.
  3. Updated the UI with StreamBuilder based on the data received from the stream, providing a seamless user experience.
ethan-tbd commented 1 week ago

please create a pr to include this request caching service in the lib/shared folder!

blackgirlbytes commented 1 week ago

@aashish-g03 Hey there! I'm just checking up if you were able to create a PR or if you need some help. Your effort wont be counted for hacktoberfest if you don't create a PR, and I want to make sure you get credit!

aashish-g03 commented 1 week ago

Thank you for the reminder, @blackgirlbytes! I’ll create a PR and share it with you shortly.

taniashiba commented 3 days ago

Just checking back in on your PR, @aashish-g03 . Let us know if you need any help or have any questions! ❤

aashish-g03 commented 3 days ago

@taniashiba, I have submitted a PR with the requested service. Apologies for the slight delay, as I took the time to thoroughly refine the code, enhancing both readability and ensuring it is production-ready. I appreciate your patience, and I would like to extend a special thanks to @blackgirlbytes, @taniashiba, and @ethan-tbd for your support throughout the process.

Working through this repository has been an invaluable learning experience, offering deep insights into GitHub automations, code structure, the use of hermit, command executions, and maintaining high standards of code quality.

I am eager to contribute further to projects within the organization, particularly with Flutter or other intriguing technologies. If there are additional feature requests or areas where I can assist, I would be happy to help. Thank you once again for this opportunity.