API: implement cookie PUT request to import cookie
This commit is contained in:
parent
499c47c7a1
commit
e5f43e5fe9
|
@ -216,7 +216,7 @@ Returns:
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Start a background task
|
Start a background task
|
||||||
POST /api/task/
|
POST /api/task/
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
|
@ -245,3 +245,25 @@ Send empty post request to validate cookie.
|
||||||
"cookie_validated": true
|
"cookie_validated": true
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
PUT /api/cookie/
|
||||||
|
Send put request containing the cookie as a string:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"cookie": "your-cookie-as-string"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Imports and validates cookie, returns on success:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"cookie_import": "done",
|
||||||
|
"cookie_validated": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Or returns status code 400 on failure:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"cookie_import": "fail",
|
||||||
|
"cookie_validated": false
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
|
@ -480,6 +480,7 @@ class CookieView(ApiBaseView):
|
||||||
"""resolves to /api/cookie/
|
"""resolves to /api/cookie/
|
||||||
GET: check if cookie is enabled
|
GET: check if cookie is enabled
|
||||||
POST: verify validity of cookie
|
POST: verify validity of cookie
|
||||||
|
PUT: import cookie
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
@ -499,3 +500,27 @@ class CookieView(ApiBaseView):
|
||||||
validated = CookieHandler(config).validate()
|
validated = CookieHandler(config).validate()
|
||||||
|
|
||||||
return Response({"cookie_validated": validated})
|
return Response({"cookie_validated": validated})
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def put(request):
|
||||||
|
"""handle put request"""
|
||||||
|
# pylint: disable=unused-argument
|
||||||
|
config = AppConfig().config
|
||||||
|
cookie = request.data.get("cookie")
|
||||||
|
if not cookie:
|
||||||
|
message = "missing cookie key in request data"
|
||||||
|
print(message)
|
||||||
|
return Response({"message": message}, status=400)
|
||||||
|
|
||||||
|
print(f"cookie preview:\n\n{cookie[:300]}")
|
||||||
|
handler = CookieHandler(config)
|
||||||
|
handler.set_cookie(cookie)
|
||||||
|
validated = handler.validate()
|
||||||
|
if not validated:
|
||||||
|
handler.revoke()
|
||||||
|
message = {"cookie_import": "fail", "cookie_validated": validated}
|
||||||
|
print(f"cookie: {message}")
|
||||||
|
return Response({"message": message}, status=400)
|
||||||
|
|
||||||
|
message = {"cookie_import": "done", "cookie_validated": validated}
|
||||||
|
return Response(message)
|
||||||
|
|
Loading…
Reference in New Issue