Refactor frontend and middleware to handle 3rd party APIs (Stemmarest, Stemweb) uniformly
Create permission stubs for Stemweb routes
Create service class on the frontend to interact with Stemweb through the middleware
Notes
Currently, Stemweb fails to POST the algorithm results to the middleware. Nevertheless, the stemmaweb_middleware.controller.stemweb.routes.accept_result route view function is prepared to handle incoming requests. Currently, the flow can be tested by using the Middleware - Post Stemweb Result request of the provided Insomnia config.
Whenever an algorithm run result is POSTed to the middleware, it is stored into an in-memory dictionary (Python defaultdict) so that we have a list of job results associated with user IDs. To add at least a naive protection against running out of memory, this dictionary is cleared periodically (every 12 hours, scheduling governed by the schedule lib)
Since this PR is only responsible for putting together the infrastructure and the API to communicate with Setmweb, there are no UI components yet which could be operated through Cypress.
Goals
Notes
stemmaweb_middleware.controller.stemweb.routes.accept_result
route view function is prepared to handle incoming requests. Currently, the flow can be tested by using the Middleware - Post Stemweb Result request of the provided Insomnia config.defaultdict
) so that we have a list of job results associated with user IDs. To add at least a naive protection against running out of memory, this dictionary is cleared periodically (every 12 hours, scheduling governed by the schedule lib)Closes #103