mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
New: Project Aphrodite
This commit is contained in:
40
frontend/src/Utilities/requestAction.js
Normal file
40
frontend/src/Utilities/requestAction.js
Normal file
@@ -0,0 +1,40 @@
|
||||
import $ from 'jquery';
|
||||
import _ from 'lodash';
|
||||
|
||||
function flattenProviderData(providerData) {
|
||||
return _.reduce(Object.keys(providerData), (result, key) => {
|
||||
const property = providerData[key];
|
||||
|
||||
if (key === 'fields') {
|
||||
result[key] = property;
|
||||
} else {
|
||||
result[key] = property.value;
|
||||
}
|
||||
|
||||
return result;
|
||||
}, {});
|
||||
}
|
||||
|
||||
function requestAction(payload) {
|
||||
const {
|
||||
provider,
|
||||
action,
|
||||
providerData,
|
||||
queryParams
|
||||
} = payload;
|
||||
|
||||
const ajaxOptions = {
|
||||
url: `/${provider}/action/${action}`,
|
||||
contentType: 'application/json',
|
||||
method: 'POST',
|
||||
data: JSON.stringify(flattenProviderData(providerData))
|
||||
};
|
||||
|
||||
if (queryParams) {
|
||||
ajaxOptions.url += `?${$.param(queryParams, true)}`;
|
||||
}
|
||||
|
||||
return $.ajax(ajaxOptions);
|
||||
}
|
||||
|
||||
export default requestAction;
|
Reference in New Issue
Block a user