Release 2.16.2
This commit is contained in:
1 parent
8ce8228091
commit
49df51d92f
32 files changed
+390
-172
No files matched your search
@@ -49,7 +49,7 @@ async function fetchApiGroupById(pool, id) {
|
||||
const [groups] = await pool.query('SELECT * FROM i_api_source_groups WHERE id = ?', [id]);
|
||||
if (!groups.length) return null;
|
||||
const [requests] = await pool.query(API_REQUEST_SELECT + ' WHERE request.auth_source_id = ? ORDER BY request.id', [id]);
|
||||
return Object.assign({}, groups[0], { requests: requests.map(function (request) { return Object.assign({}, request, { name: request.request_name }); }) });
|
||||
return Object.assign({}, groups[0], { requests: requests.map(function (request) { return Object.assign({}, request, { name: request.request_name, enabled: request.request_enabled === undefined ? request.enabled : request.request_enabled }); }) });
|
||||
}
|
||||
|
||||
async function fetchApiGroupsPage(pool, page, pageSize, search, sort, direction) {
|
||||
@@ -77,11 +77,13 @@ async function getApiRequestUsage(pool) {
|
||||
|
||||
async function saveApiGroup(pool, id, payload, actorId, canDelete) {
|
||||
const connection = await pool.getConnection();
|
||||
let enabled = 1;
|
||||
try {
|
||||
await connection.beginTransaction();
|
||||
if (id) {
|
||||
const [groups] = await connection.query('SELECT id FROM i_api_source_groups WHERE id = ? FOR UPDATE', [id]);
|
||||
const [groups] = await connection.query('SELECT id, enabled FROM i_api_source_groups WHERE id = ? FOR UPDATE', [id]);
|
||||
if (!groups.length) throw validationError('API source not found.', 404);
|
||||
enabled = groups[0].enabled === 0 || groups[0].enabled === false ? 0 : 1;
|
||||
}
|
||||
const [duplicates] = await connection.query('SELECT id FROM i_api_source_groups WHERE name = ? AND id <> ?', [payload.name, id || 0]);
|
||||
if (duplicates.length) throw validationError('An API source with that name already exists.');
|
||||
@@ -113,7 +115,7 @@ async function saveApiGroup(pool, id, payload, actorId, canDelete) {
|
||||
}
|
||||
if (removed.length) await connection.query('DELETE FROM i_api_sources WHERE auth_source_id = ? AND id IN (?)', [id, removed]);
|
||||
await connection.commit();
|
||||
return { id: Number(id), removed: removed, requests: payload.requests };
|
||||
return { id: Number(id), enabled: enabled, removed: removed, requests: payload.requests };
|
||||
} catch (error) {
|
||||
await connection.rollback();
|
||||
if (error.code === 'ER_DUP_ENTRY') throw validationError('An API source with that name already exists.');
|
||||
|
||||
@@ -17,7 +17,7 @@ const tokenCache = new Map();
|
||||
const tokenRequests = new Map();
|
||||
const diagnosticContext = Symbol('apiSourceDiagnostics');
|
||||
const API_AUTH_FIELDS = ['auth_method', 'auth_username', 'auth_password', 'auth_bearer_token', 'auth_header_name', 'auth_header_value', 'token_url', 'token_request_body_json', 'token_response_path', 'token_refresh_url', 'token_refresh_request_body_json', 'token_refresh_response_path', 'token_header_name', 'token_header_prefix'];
|
||||
const API_REQUEST_SELECT = 'SELECT request.*, request.name AS request_name, auth.name AS group_name, CONCAT(auth.name, \' / \', request.name) AS name, ' + API_AUTH_FIELDS.map(function (field) { return 'auth.' + field; }).join(', ') + ' FROM i_api_sources request JOIN i_api_source_groups auth ON auth.id = request.auth_source_id';
|
||||
const API_REQUEST_SELECT = 'SELECT request.*, request.enabled AS request_enabled, auth.enabled AS source_enabled, (request.enabled AND auth.enabled) AS enabled, request.name AS request_name, auth.name AS group_name, CONCAT(auth.name, \' / \', request.name) AS name, ' + API_AUTH_FIELDS.map(function (field) { return 'auth.' + field; }).join(', ') + ' FROM i_api_sources request JOIN i_api_source_groups auth ON auth.id = request.auth_source_id';
|
||||
|
||||
function createDiagnosticSanitizer(source) {
|
||||
const secrets = [];
|
||||
@@ -176,7 +176,7 @@ function buildAuthHeaders(source) {
|
||||
|
||||
async function fetchApiSourcesData(pool) {
|
||||
const [apiSources] = await pool.query(
|
||||
"SELECT request.id, request.auth_source_id, request.name AS request_name, auth.name AS group_name, CONCAT(auth.name, ' / ', request.name) AS name, request.items_path, request.enabled, request.update_interval_value, request.update_interval_unit, request.last_pulled_at, request.last_pull_error, request.last_response_status, request.last_response_content_type, request.last_response_json FROM i_api_sources request JOIN i_api_source_groups auth ON auth.id = request.auth_source_id ORDER BY auth.name, request.id"
|
||||
"SELECT request.id, request.auth_source_id, request.name AS request_name, auth.name AS group_name, CONCAT(auth.name, ' / ', request.name) AS name, request.items_path, (request.enabled AND auth.enabled) AS enabled, request.update_interval_value, request.update_interval_unit, request.last_pulled_at, request.last_pull_error, request.last_response_status, request.last_response_content_type, request.last_response_json FROM i_api_sources request JOIN i_api_source_groups auth ON auth.id = request.auth_source_id ORDER BY auth.name, request.id"
|
||||
);
|
||||
|
||||
return { apiSources: apiSources };
|
||||
|
||||
Reference in new issue
Block a user