芝麻web文件管理V1.00
编辑当前文件:/home/ezdajrnh/www/wp-content/plugins/better-wp-security/core/packages/data/src/bans/actions.js
/** * External dependencies */ import { isObject } from 'lodash'; /** * WordPress dependencies */ import { isURL, addQueryArgs, getQueryArg } from '@wordpress/url'; /** * Internal dependencies */ import { getSelf } from '@ithemes/security-utils'; import { select, apiFetch, parseFetchResponse } from '../controls'; export const path = '/ithemes-security/v1/bans'; export function* query( queryId, queryParams = {} ) { let response, items; yield { type: START_QUERY, queryId, queryParams }; try { response = yield apiFetch( { path: addQueryArgs( path, queryParams ), parse: false, } ); items = yield parseFetchResponse( response ); } catch ( error ) { yield { type: FAILED_QUERY, queryId, queryParams, error }; return error; } yield receiveQuery( queryId, queryParams.context || 'view', response, items, 'replace' ); yield { type: FINISH_QUERY, queryId, queryParams, response }; return response; } export function *refreshQuery( queryId ) { const queryParams = yield select( 'ithemes-security/bans', 'getQueryParams', queryId ); yield* query( queryId, queryParams ); } export function* fetchQueryNextPage( queryId, mode = 'append' ) { const link = yield select( 'ithemes-security/bans', 'getQueryHeaderLink', queryId, 'next' ); if ( ! link ) { return []; } let response, items; yield { type: START_QUERY, queryId }; try { response = yield apiFetch( { url: link.link, parse: false, } ); items = yield parseFetchResponse( response ); } catch ( error ) { yield { type: FAILED_QUERY, queryId, error }; return error; } const context = getQueryArg( link.link, 'context' ) || 'view'; yield receiveQuery( queryId, context, response, items, mode ); yield { type: FINISH_QUERY, queryId, response }; return response; } export function receiveQuery( queryId, context, response, items, mode ) { return { type: RECEIVE_QUERY, queryId, context, response, items, mode, }; } export function receiveBan( ban ) { return { type: RECEIVE_BAN, ban, }; } export function startCreateBan( ban ) { return { type: START_CREATE_BAN, ban }; } export function failedCreateBan( ban, error ) { return { type: FAILED_CREATE_BAN, ban, error }; } export function finishCreateBan( ban, response ) { return { type: FINISH_CREATE_BAN, ban, response }; } export function startUpdateBan( self, ban ) { return { type: START_UPDATE_BAN, self, ban }; } export function failedUpdateBan( self, error ) { return { type: FAILED_UPDATE_BAN, self, error }; } export function finishUpdateBan( self, response ) { return { type: FINISH_UPDATE_BAN, self, response }; } export function startDeleteBan( self ) { return { type: START_DELETE_BAN, self }; } export function failedDeleteBan( self, error ) { return { type: FAILED_DELETE_BAN, self, error }; } export function finishDeleteBan( self ) { return { type: FINISH_DELETE_BAN, self }; } /** * Creates a new ban. * * @param {string} source The ban source or URL to the ban endpoint. * @param {Object} ban Ban data. * @return {IterableIterator<*>} Iterator */ export function* createBan( source, ban ) { const request = { method: 'POST', data: ban, }; if ( isURL( source ) ) { request.url = source; } else { request.path = `${ path }/${ source }`; } yield startCreateBan( ban ); let response; try { response = yield apiFetch( request ); } catch ( e ) { yield failedCreateBan( ban, e ); return e; } yield finishCreateBan( ban, response ); yield receiveBan( response ); return response; } /** * Updates a ban. * * @param {Object|string} banOrSelf Ban object self link. * @param {Object} update Ban data. * @return {IterableIterator<*>} Iterator */ export function* updateBan( banOrSelf, update ) { const self = isObject( banOrSelf ) ? getSelf( banOrSelf ) : banOrSelf; yield startUpdateBan( self, update ); let response; try { response = yield apiFetch( { url: self, method: 'PUT', data: update, } ); } catch ( e ) { yield failedUpdateBan( self, e ); return e; } yield finishUpdateBan( self, response ); yield receiveBan( response ); return response; } /** * Deletes a ban. * * @param {Object|string} banOrSelf Ban object or self link. * @return {IterableIterator<*>} Iterator */ export function* deleteBan( banOrSelf ) { const self = isObject( banOrSelf ) ? getSelf( banOrSelf ) : banOrSelf; yield startDeleteBan( self ); try { yield apiFetch( { url: self, method: 'DELETE', } ); } catch ( e ) { yield failedDeleteBan( self, e ); return e; } yield finishDeleteBan( self ); return null; } export const RECEIVE_QUERY = 'RECEIVE_QUERY'; export const START_QUERY = 'START_QUERY'; export const FINISH_QUERY = 'FINISH_QUERY'; export const FAILED_QUERY = 'FAILED_QUERY'; export const START_CREATE_BAN = 'START_CREATE_BAN'; export const FINISH_CREATE_BAN = 'FINISH_CREATE_BAN'; export const FAILED_CREATE_BAN = 'FAILED_CREATE_BAN'; export const RECEIVE_BAN = 'RECEIVE_BAN'; export const START_UPDATE_BAN = 'START_UPDATE_BAN'; export const FINISH_UPDATE_BAN = 'FINISH_UPDATE_BAN'; export const FAILED_UPDATE_BAN = 'FAILED_UPDATE_BAN'; export const START_DELETE_BAN = 'START_DELETE_BAN'; export const FINISH_DELETE_BAN = 'FINISH_DELETE_BAN'; export const FAILED_DELETE_BAN = 'FAILED_DELETE_BAN';