Ultimately, the task library should be fully configurable by admins
What tasks exist to choose from
What stages / options each task has
What stages / options are not visible to the users
Default values
Right now, there is a (functionally limited) endpoint (POST /admin/battery) to upload battery files (which technically represent fully customized tasks and aren't meant to be prescriptive in terms of what options are available, but good enough for a first pass)
Task
v0 of the admin interface will:
[ ] have a list of tasks
[ ] allow the admins to delete them
[ ] allow them to upload a battery file to add a new task to the library
You will have to change the POST /admin/battery endpoint to be a file-upload instead of a regular POST with a json body
Likely we'll want to use some multipart/file-handling middleware (there's one called multer I've used in the past iirc)
If this ends up being way too hard / would significantly increase dev time, we can start with just a text field where the admin can copy/paste the contents of the battery file
You can also just parse the file on the frontend and upload the JSON
If the battery already exists, either update the existing battery or do nothing (probably don't make a second copy)
[ ] You can delete what's currently on the admin page
[ ] Make sure to authorize all actions properly (e.g. using isAdmin middleware)
Motivation
POST /admin/battery
) to upload battery files (which technically represent fully customized tasks and aren't meant to be prescriptive in terms of what options are available, but good enough for a first pass)Task
POST /admin/battery
endpoint to be a file-upload instead of a regular POST with a json bodyLikely we'll want to use some multipart/file-handling middleware (there's one calledmulter
I've used in the past iirc)isAdmin
middleware)