From ce0e69d988624345a92e438f694c9770c990102e Mon Sep 17 00:00:00 2001 From: Boris Sekachev <40690378+bsekachev@users.noreply.github.com> Date: Fri, 5 Jul 2019 12:13:51 +0300 Subject: [PATCH] Logout API method, fixed deleteTask method (#550) --- cvatjs/src/api-implementation.js | 4 ++++ cvatjs/src/api.js | 13 +++++++++++++ cvatjs/src/server-proxy.js | 21 +++++++++++++++++++-- cvatjs/src/session.js | 2 +- 4 files changed, 37 insertions(+), 3 deletions(-) diff --git a/cvatjs/src/api-implementation.js b/cvatjs/src/api-implementation.js index 5ead890a..0a4d4961 100644 --- a/cvatjs/src/api-implementation.js +++ b/cvatjs/src/api-implementation.js @@ -73,6 +73,10 @@ await serverProxy.server.login(username, password); }; + cvat.server.logout.implementation = async () => { + await serverProxy.server.logout(); + }; + cvat.users.get.implementation = async (filter) => { checkFilter(filter, { self: isBoolean, diff --git a/cvatjs/src/api.js b/cvatjs/src/api.js index 05337dd2..4f88de8c 100644 --- a/cvatjs/src/api.js +++ b/cvatjs/src/api.js @@ -117,6 +117,19 @@ .apiWrapper(cvat.server.login, username, password); return result; }, + /** + * Method allows to logout from the server + * @method logout + * @async + * @memberof module:API.cvat.server + * @throws {module:API.cvat.exceptions.PluginError} + * @throws {module:API.cvat.exceptions.ServerError} + */ + async logout() { + const result = await PluginRegistry + .apiWrapper(cvat.server.logout); + return result; + }, }, /** * Namespace is used for getting tasks diff --git a/cvatjs/src/server-proxy.js b/cvatjs/src/server-proxy.js index d2384ef6..65380a03 100644 --- a/cvatjs/src/server-proxy.js +++ b/cvatjs/src/server-proxy.js @@ -178,6 +178,22 @@ setCookie(authentificationResponse); } + async function logout() { + const { backendAPI } = window.cvat.config; + + try { + await Axios.get(`${backendAPI}/auth/logout`, { + proxy: window.cvat.config.proxy, + }); + } catch (errorData) { + const code = errorData.response ? errorData.response.status : errorData.code; + throw new window.cvat.exceptions.ServerError( + 'Could not logout from the server', + code, + ); + } + } + async function getTasks(filter = '') { const { backendAPI } = window.cvat.config; @@ -309,7 +325,7 @@ proxy: window.cvat.config.proxy, }); } catch (errorData) { - deleteTask(response.data.id); + await deleteTask(response.data.id); const code = errorData.response ? errorData.response.status : errorData.code; throw new window.cvat.exceptions.ServerError( 'Could not put data to the server', @@ -320,7 +336,7 @@ try { await wait(response.data.id); } catch (createException) { - deleteTask(response.data.id); + await deleteTask(response.data.id); throw createException; } @@ -497,6 +513,7 @@ share, exception, login, + logout, }), writable: false, }, diff --git a/cvatjs/src/session.js b/cvatjs/src/session.js index 09a73515..252f39d0 100644 --- a/cvatjs/src/session.js +++ b/cvatjs/src/session.js @@ -1065,7 +1065,7 @@ }; Task.prototype.delete.implementation = async function () { - serverProxy.tasks.deleteTask(this.id); + await serverProxy.tasks.deleteTask(this.id); }; Task.prototype.frames.get.implementation = async function (frame) {