woocommerce-paypal-payments/modules/ppcp-settings/resources/js/data/onboarding/controls.js

61 lines
1.1 KiB
JavaScript
Raw Normal View History

2024-11-18 18:51:11 +01:00
/**
* Controls: Implement side effects, typically asynchronous operations.
*
2024-11-20 16:48:50 +01:00
* Controls use ACTION_TYPES keys as identifiers.
2024-11-18 18:51:11 +01:00
* They are triggered by corresponding actions and handle external interactions.
*
* @file
*/
import { select } from '@wordpress/data';
2024-11-20 16:48:50 +01:00
import apiFetch from '@wordpress/api-fetch';
2024-11-20 16:48:50 +01:00
import {
STORE_NAME,
REST_PERSIST_PATH,
REST_MANUAL_CONNECTION_PATH,
} from './constants';
import ACTION_TYPES from './action-types';
export const controls = {
2024-11-20 16:48:50 +01:00
async [ ACTION_TYPES.DO_PERSIST_DATA ]( { data } ) {
console.log( 'Do PERSIST: ', data );
try {
await apiFetch( {
2024-11-20 16:48:50 +01:00
path: REST_PERSIST_PATH,
method: 'POST',
data,
} );
} catch ( e ) {
console.error( 'Error saving progress.', e );
}
},
2024-11-20 16:48:50 +01:00
async [ ACTION_TYPES.DO_MANUAL_CONNECTION ]( {
clientId,
clientSecret,
useSandbox,
} ) {
let result = null;
try {
result = await apiFetch( {
2024-11-20 16:48:50 +01:00
path: REST_MANUAL_CONNECTION_PATH,
method: 'POST',
data: {
clientId,
clientSecret,
useSandbox,
},
} );
} catch ( e ) {
result = {
success: false,
error: e,
};
}
return result;
},
};