File "actions.js"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/better-wp-security/core/packages/data/src/tools/actions.js
File size: 1.56 KB
MIME-type: text/x-java
Charset: utf-8
/**
* Internal dependencies
*/
import { Result } from '@ithemes/security-utils';
import { apiFetch, awaitPromise } from '../controls';
export function* fetchTools() {
const response = yield apiFetch( {
path: '/ithemes-security/v1/tools',
} );
yield { type: RECEIVE_TOOLS, tools: response };
}
export function* runTool( tool, form = {} ) {
yield { type: START_TOOL, tool, form };
let response;
try {
response = yield apiFetch( {
path: `/ithemes-security/v1/tools/${ tool }`,
method: 'POST',
data: form,
parse: false,
} );
} catch ( error ) {
const result = yield awaitPromise(
Result.fromResponse( error.getResponse() )
);
yield { type: FINISH_TOOL, tool, result };
return result;
}
const result = yield awaitPromise( Result.fromResponse( response ) );
yield { type: FINISH_TOOL, tool, result };
return result;
}
export function* toggleTool( tool, enabled = true ) {
yield { type: START_TOGGLE_TOOL, tool, enabled };
let response;
try {
response = yield apiFetch( {
path: `/ithemes-security/v1/tools/${ tool }`,
method: 'PUT',
data: {
enabled,
},
} );
} catch ( error ) {
yield { type: FAILED_TOGGLE_TOOL, tool, error };
return error;
}
yield { type: FINISH_TOGGLE_TOOL, tool, data: response };
return response;
}
export const RECEIVE_TOOLS = 'RECEIVE_TOOLS';
export const START_TOOL = 'START_TOOL';
export const FINISH_TOOL = 'FINISH_TOOL';
export const START_TOGGLE_TOOL = 'START_TOGGLE_TOOL';
export const FAILED_TOGGLE_TOOL = 'FAILED_TOGGLE_TOOL';
export const FINISH_TOGGLE_TOOL = 'FINISH_TOGGLE_TOOL';