* Initial commit for GET response for TaskAPIView. * Update for missing space - linting issue. * Additional linting fixes. * add is_locked method to check if lock is set * Update to use `.is_locked` method and add decorator. * Fix linting issue. * Fix doubled "rescan" call for locked file. Removed call to ".owned()" under "is_locked". * Commenting out GET call in TaskAPI view to revert change for testing. * Commenting is_locked function to see if Server Response 500 is stopped. * Reassert is_locked function within RedisArchivist class. * Create test GET responder. * Reverting simple GET response change. * Reapplying simple GET response for `/api/task/`. * Reapplying change with modification to lock key. * Documentation update for new GET calls. * README: fix returned value as `bool` instead of `str`. * Updating the `is_locked` key reference to "rescan" and "downloading" to fix which key is being retrieved. * Use dictionary keys, rather than line-by-line statements. * Fix typo in README for Task View. Co-authored-by: simon <simobilleter@gmail.com>
This commit is contained in:
parent
4d9ee4494f
commit
bbb16bb3c2
|
@ -202,6 +202,20 @@ When valid returns message with user id:
|
||||||
```
|
```
|
||||||
|
|
||||||
## Task View
|
## Task View
|
||||||
|
GET /api/task/
|
||||||
|
POST /api/task/
|
||||||
|
|
||||||
|
Check if there is an ongoing task:
|
||||||
|
GET /api/task/
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"rescan": false,
|
||||||
|
"downloading": false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Start a background task
|
Start a background task
|
||||||
POST /api/task/
|
POST /api/task/
|
||||||
```json
|
```json
|
||||||
|
|
|
@ -452,9 +452,20 @@ class LoginApiView(ObtainAuthToken):
|
||||||
|
|
||||||
class TaskApiView(ApiBaseView):
|
class TaskApiView(ApiBaseView):
|
||||||
"""resolves to /api/task/
|
"""resolves to /api/task/
|
||||||
|
GET: check if ongoing background task
|
||||||
POST: start a new background task
|
POST: start a new background task
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get(request):
|
||||||
|
"""handle get request"""
|
||||||
|
|
||||||
|
response = {"rescan": False, "downloading": False}
|
||||||
|
for key in response.keys():
|
||||||
|
response[key] = RedisArchivist().is_locked(key)
|
||||||
|
|
||||||
|
return Response(response)
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
"""handle post request"""
|
"""handle post request"""
|
||||||
|
|
||||||
|
|
|
@ -80,6 +80,12 @@ class RedisArchivist(RedisBase):
|
||||||
redis_lock = self.conn.lock(self.NAME_SPACE + lock_key)
|
redis_lock = self.conn.lock(self.NAME_SPACE + lock_key)
|
||||||
return redis_lock
|
return redis_lock
|
||||||
|
|
||||||
|
def is_locked(self, lock_key):
|
||||||
|
"""check if lock is set"""
|
||||||
|
lock_name = self.NAME_SPACE + lock_key
|
||||||
|
lock_status = bool(self.conn.execute_command("GET", lock_name))
|
||||||
|
return lock_status
|
||||||
|
|
||||||
def get_progress(self):
|
def get_progress(self):
|
||||||
"""get a list of all progress messages"""
|
"""get a list of all progress messages"""
|
||||||
all_messages = []
|
all_messages = []
|
||||||
|
|
Loading…
Reference in New Issue