@ia2coop/ia2-annotation-tool
Version:
Annotation tool components library for IA² Project
701 lines (570 loc) • 22.3 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
var _axios = _interopRequireDefault(require("axios"));
var _fileSaver = _interopRequireDefault(require("file-saver"));
var _constants = require("./constants");
var Api = function Api(baseUrl) {
var requester = _axios.default.create({
baseURL: baseUrl,
headers: {
"Content-Type": "application/json"
}
});
var interceptorFn = function interceptorFn(config) {
var token = localStorage.getItem(_constants.ACCESS_TOKEN);
var resultConfig = config;
if (token) {
resultConfig.headers.Authorization = "Bearer ".concat(token);
}
return resultConfig;
};
requester.interceptors.request.use(interceptorFn, Promise.reject);
var refreshToken = /*#__PURE__*/function () {
var _refreshToken = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
var ENDPOINT_URL, response, access;
return _regenerator.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
ENDPOINT_URL = "token/refresh/";
_context.prev = 1;
_context.next = 4;
return requester.post(ENDPOINT_URL, {
refresh: localStorage.getItem(_constants.REFRESH_TOKEN)
});
case 4:
response = _context.sent;
access = response.data.access;
localStorage.setItem(_constants.ACCESS_TOKEN, access);
return _context.abrupt("return", Promise.resolve(access));
case 10:
_context.prev = 10;
_context.t0 = _context["catch"](1);
if (!_context.t0.response) {
_context.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
return _context.abrupt("return", Promise.reject(_context.t0));
case 14:
case "end":
return _context.stop();
}
}
}, _callee, null, [[1, 10]]);
}));
function refreshToken() {
return _refreshToken.apply(this, arguments);
}
return refreshToken;
}();
requester.interceptors.response.use(function (response) {
return response;
}, /*#__PURE__*/function () {
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(error) {
var status, originalRequest;
return _regenerator.default.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
status = error.response.status;
originalRequest = error.config;
if (!(status === _constants.AUTH_FORBIDDEN_ERROR && // eslint-disable-next-line no-underscore-dangle
!originalRequest._retry)) {
_context2.next = 7;
break;
}
// eslint-disable-next-line no-underscore-dangle
originalRequest._retry = true;
_context2.next = 6;
return refreshToken();
case 6:
return _context2.abrupt("return", requester(originalRequest));
case 7:
throw error;
case 8:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));
return function (_x) {
return _ref.apply(this, arguments);
};
}());
var userLogin = /*#__PURE__*/function () {
var _userLogin = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(email, password) {
var response, _response$data, access, refresh;
return _regenerator.default.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.prev = 0;
_context3.next = 3;
return requester.post("token/", {
email: email,
password: password
});
case 3:
response = _context3.sent;
_response$data = response.data, access = _response$data.access, refresh = _response$data.refresh;
localStorage.setItem(_constants.ACCESS_TOKEN, access);
localStorage.setItem(_constants.REFRESH_TOKEN, refresh);
return _context3.abrupt("return", response ? response.data : null);
case 10:
_context3.prev = 10;
_context3.t0 = _context3["catch"](0);
if (_context3.t0.response) {
_context3.next = 14;
break;
}
throw new Error("Existe un problema de conexión en este momento");
case 14:
throw _context3.t0.response.data;
case 15:
case "end":
return _context3.stop();
}
}
}, _callee3, null, [[0, 10]]);
}));
function userLogin(_x2, _x3) {
return _userLogin.apply(this, arguments);
}
return userLogin;
}();
var userLogout = function userLogout() {
localStorage.removeItem(_constants.ACCESS_TOKEN);
localStorage.removeItem(_constants.REFRESH_TOKEN);
};
var getAnonymizedDoc = /*#__PURE__*/function () {
var _getAnonymizedDoc = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(newAnnotations, docId, deleteAnnotations) {
var ENDPOINT_URL, params, response;
return _regenerator.default.wrap(function _callee4$(_context4) {
while (1) {
switch (_context4.prev = _context4.next) {
case 0:
ENDPOINT_URL = "act/".concat(docId, "/addAnnotations/");
params = {
newOcurrencies: newAnnotations,
deleteOcurrencies: deleteAnnotations
};
_context4.prev = 2;
_context4.next = 5;
return requester.post(ENDPOINT_URL, params);
case 5:
response = _context4.sent;
return _context4.abrupt("return", response.data);
case 9:
_context4.prev = 9;
_context4.t0 = _context4["catch"](2);
if (!_context4.t0.response) {
_context4.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context4.t0;
case 13:
case "end":
return _context4.stop();
}
}
}, _callee4, null, [[2, 9]]);
}));
function getAnonymizedDoc(_x4, _x5, _x6) {
return _getAnonymizedDoc.apply(this, arguments);
}
return getAnonymizedDoc;
}();
var blobToFile = function blobToFile(theBlob, fileName) {
return new File([theBlob], fileName, {
lastModified: new Date().getTime(),
type: theBlob.type
});
};
var getDocAnalysis = /*#__PURE__*/function () {
var _getDocAnalysis = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(doc, docName) {
var ENDPOINT_URL, formData, blob, file, response;
return _regenerator.default.wrap(function _callee5$(_context5) {
while (1) {
switch (_context5.prev = _context5.next) {
case 0:
ENDPOINT_URL = "act/";
formData = new FormData();
_context5.next = 4;
return fetch(doc).then(function (r) {
return r.blob();
});
case 4:
blob = _context5.sent;
file = blobToFile(blob, docName);
formData.append("file", file);
_context5.prev = 7;
_context5.next = 10;
return requester.post(ENDPOINT_URL, formData);
case 10:
response = _context5.sent;
return _context5.abrupt("return", response ? response.data : null);
case 14:
_context5.prev = 14;
_context5.t0 = _context5["catch"](7);
if (!_context5.t0.response) {
_context5.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context5.t0;
case 18:
case "end":
return _context5.stop();
}
}
}, _callee5, null, [[7, 14]]);
}));
function getDocAnalysis(_x7, _x8) {
return _getDocAnalysis.apply(this, arguments);
}
return getDocAnalysis;
}();
var getSubjects = /*#__PURE__*/function () {
var _getSubjects = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
var ENDPOINT_URL, data;
return _regenerator.default.wrap(function _callee6$(_context6) {
while (1) {
switch (_context6.prev = _context6.next) {
case 0:
ENDPOINT_URL = "subject/";
_context6.prev = 1;
_context6.next = 4;
return requester.get(ENDPOINT_URL);
case 4:
data = _context6.sent;
return _context6.abrupt("return", data.data);
case 8:
_context6.prev = 8;
_context6.t0 = _context6["catch"](1);
if (!_context6.t0.response) {
_context6.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context6.t0;
case 12:
case "end":
return _context6.stop();
}
}
}, _callee6, null, [[1, 8]]);
}));
function getSubjects() {
return _getSubjects.apply(this, arguments);
}
return getSubjects;
}();
var selectSubject = /*#__PURE__*/function () {
var _selectSubject = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee7(idSubject) {
var ENDPOINT_URL, _yield$requester$post, data;
return _regenerator.default.wrap(function _callee7$(_context7) {
while (1) {
switch (_context7.prev = _context7.next) {
case 0:
ENDPOINT_URL = "subject/".concat(idSubject, "/useSubject/");
_context7.prev = 1;
_context7.next = 4;
return requester.post(ENDPOINT_URL);
case 4:
_yield$requester$post = _context7.sent;
data = _yield$requester$post.data;
return _context7.abrupt("return", {
data: data
});
case 9:
_context7.prev = 9;
_context7.t0 = _context7["catch"](1);
if (!_context7.t0.response) {
_context7.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context7.t0;
case 13:
case "end":
return _context7.stop();
}
}
}, _callee7, null, [[1, 9]]);
}));
function selectSubject(_x9) {
return _selectSubject.apply(this, arguments);
}
return selectSubject;
}();
var getEntities = /*#__PURE__*/function () {
var _getEntities = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee8() {
var ENDPOINT_URL, data;
return _regenerator.default.wrap(function _callee8$(_context8) {
while (1) {
switch (_context8.prev = _context8.next) {
case 0:
ENDPOINT_URL = "entity/";
_context8.prev = 1;
_context8.next = 4;
return requester.get(ENDPOINT_URL);
case 4:
data = _context8.sent;
return _context8.abrupt("return", data.data);
case 8:
_context8.prev = 8;
_context8.t0 = _context8["catch"](1);
if (!_context8.t0.response) {
_context8.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context8.t0;
case 12:
case "end":
return _context8.stop();
}
}
}, _callee8, null, [[1, 8]]);
}));
function getEntities() {
return _getEntities.apply(this, arguments);
}
return getEntities;
}();
var getDocToDownload = /*#__PURE__*/function () {
var _getDocToDownload = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee9(docId, fileName, taskId) {
var ENDPOINT_URL, response;
return _regenerator.default.wrap(function _callee9$(_context9) {
while (1) {
switch (_context9.prev = _context9.next) {
case 0:
ENDPOINT_URL = "act/".concat(docId, "/getAnonymousDocument/?taskid=").concat(taskId);
_context9.prev = 1;
_context9.next = 4;
return requester.get(ENDPOINT_URL, {
responseType: "blob"
});
case 4:
response = _context9.sent;
(0, _fileSaver.default)(response.data, fileName);
_context9.next = 12;
break;
case 8:
_context9.prev = 8;
_context9.t0 = _context9["catch"](1);
if (!_context9.t0.response) {
_context9.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context9.t0;
case 12:
case "end":
return _context9.stop();
}
}
}, _callee9, null, [[1, 8]]);
}));
function getDocToDownload(_x10, _x11, _x12) {
return _getDocToDownload.apply(this, arguments);
}
return getDocToDownload;
}();
var getDocPublishedToDrive = /*#__PURE__*/function () {
var _getDocPublishedToDrive = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee10(docId) {
var ENDPOINT_URL, data;
return _regenerator.default.wrap(function _callee10$(_context10) {
while (1) {
switch (_context10.prev = _context10.next) {
case 0:
ENDPOINT_URL = "act/".concat(docId, "/publishDocumentInDrive/");
_context10.prev = 1;
_context10.next = 4;
return requester.post(ENDPOINT_URL);
case 4:
data = _context10.sent;
return _context10.abrupt("return", data);
case 8:
_context10.prev = 8;
_context10.t0 = _context10["catch"](1);
if (!_context10.t0.response) {
_context10.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context10.t0;
case 12:
case "end":
return _context10.stop();
}
}
}, _callee10, null, [[1, 8]]);
}));
function getDocPublishedToDrive(_x13) {
return _getDocPublishedToDrive.apply(this, arguments);
}
return getDocPublishedToDrive;
}();
var getDocPublished = /*#__PURE__*/function () {
var _getDocPublished = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee11(docId) {
var ENDPOINT_URL, data;
return _regenerator.default.wrap(function _callee11$(_context11) {
while (1) {
switch (_context11.prev = _context11.next) {
case 0:
ENDPOINT_URL = "act/".concat(docId, "/publishDocument/");
_context11.prev = 1;
_context11.next = 4;
return requester.post(ENDPOINT_URL);
case 4:
data = _context11.sent;
return _context11.abrupt("return", data);
case 8:
_context11.prev = 8;
_context11.t0 = _context11["catch"](1);
if (!_context11.t0.response) {
_context11.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context11.t0;
case 12:
case "end":
return _context11.stop();
}
}
}, _callee11, null, [[1, 8]]);
}));
function getDocPublished(_x14) {
return _getDocPublished.apply(this, arguments);
}
return getDocPublished;
}();
var getApiStats = /*#__PURE__*/function () {
var _getApiStats = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee12(url, start, end) {
var params, data;
return _regenerator.default.wrap(function _callee12$(_context12) {
while (1) {
switch (_context12.prev = _context12.next) {
case 0:
_context12.prev = 0;
params = {
start: start,
end: end
};
_context12.next = 4;
return requester.get(url, {
params: params
});
case 4:
data = _context12.sent;
return _context12.abrupt("return", data);
case 8:
_context12.prev = 8;
_context12.t0 = _context12["catch"](0);
if (!_context12.t0.response) {
_context12.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context12.t0;
case 12:
case "end":
return _context12.stop();
}
}
}, _callee12, null, [[0, 8]]);
}));
function getApiStats(_x15, _x16, _x17) {
return _getApiStats.apply(this, arguments);
}
return getApiStats;
}();
var getAllOcurrenciesOf = /*#__PURE__*/function () {
var _getAllOcurrenciesOf = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee13(newAnnotations, docId, deleteAnnotations, entityList) {
var ENDPOINT_URL, params, response;
return _regenerator.default.wrap(function _callee13$(_context13) {
while (1) {
switch (_context13.prev = _context13.next) {
case 0:
ENDPOINT_URL = "/act/".concat(docId, "/addAllOccurrencies/");
params = {
newOcurrencies: newAnnotations,
deleteOcurrencies: deleteAnnotations,
entityList: entityList
};
_context13.prev = 2;
_context13.next = 5;
return requester.post(ENDPOINT_URL, params);
case 5:
response = _context13.sent;
return _context13.abrupt("return", response ? response.data : null);
case 9:
_context13.prev = 9;
_context13.t0 = _context13["catch"](2);
if (!_context13.t0.response) {
_context13.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context13.t0;
case 13:
case "end":
return _context13.stop();
}
}
}, _callee13, null, [[2, 9]]);
}));
function getAllOcurrenciesOf(_x18, _x19, _x20, _x21) {
return _getAllOcurrenciesOf.apply(this, arguments);
}
return getAllOcurrenciesOf;
}();
var checkStatusDownloadDocument = /*#__PURE__*/function () {
var _checkStatusDownloadDocument = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee14(docId, taskId) {
var ENDPOINT_URL, data;
return _regenerator.default.wrap(function _callee14$(_context14) {
while (1) {
switch (_context14.prev = _context14.next) {
case 0:
ENDPOINT_URL = "act/".concat(docId, "/getStatusDocument/?taskid=").concat(taskId);
_context14.prev = 1;
_context14.next = 4;
return requester.get(ENDPOINT_URL);
case 4:
data = _context14.sent;
return _context14.abrupt("return", data);
case 8:
_context14.prev = 8;
_context14.t0 = _context14["catch"](1);
if (!_context14.t0.response) {
_context14.t0.response.data.detail = "Existe un problema de conexión en este momento. Intente Luego.";
}
throw _context14.t0;
case 12:
case "end":
return _context14.stop();
}
}
}, _callee14, null, [[1, 8]]);
}));
function checkStatusDownloadDocument(_x22, _x23) {
return _checkStatusDownloadDocument.apply(this, arguments);
}
return checkStatusDownloadDocument;
}();
return {
userLogin: userLogin,
userLogout: userLogout,
refreshToken: refreshToken,
getAnonymizedDoc: getAnonymizedDoc,
getDocAnalysis: getDocAnalysis,
getSubjects: getSubjects,
selectSubject: selectSubject,
getEntities: getEntities,
getDocToDownload: getDocToDownload,
getDocPublishedToDrive: getDocPublishedToDrive,
getDocPublished: getDocPublished,
getHechoStats: function getHechoStats(start, end) {
return getApiStats("/stats/hecho/", start, end);
},
getLugarStats: function getLugarStats(start, end) {
return getApiStats("/stats/lugar/", start, end);
},
getEdadStats: function getEdadStats(start, end) {
return getApiStats("/stats/edad/", start, end);
},
getAllOcurrenciesOf: getAllOcurrenciesOf,
checkStatusDownloadDocument: checkStatusDownloadDocument
};
};
var _default = Api;
exports.default = _default;