47 lines
1.0 KiB
JavaScript
47 lines
1.0 KiB
JavaScript
|
/** @format */
|
||
|
/**
|
||
|
* External dependencies
|
||
|
*/
|
||
|
import { __, sprintf } from '@wordpress/i18n';
|
||
|
import { dispatch } from '@wordpress/data';
|
||
|
|
||
|
/**
|
||
|
* Internal dependencies
|
||
|
*/
|
||
|
import { getResourceName } from '../utils';
|
||
|
|
||
|
const initiateReportExport = operations => async ( reportType, reportTitle, reportArgs ) => {
|
||
|
const { createNotice } = dispatch( 'core/notices' );
|
||
|
|
||
|
const resourceName = getResourceName( `report-export-${ reportType }`, reportArgs );
|
||
|
|
||
|
const result = await operations.update( [ resourceName ], {
|
||
|
[ resourceName ]: reportArgs,
|
||
|
} );
|
||
|
|
||
|
const response = result[ 0 ][ resourceName ];
|
||
|
|
||
|
if ( response && response.success ) {
|
||
|
createNotice(
|
||
|
'success',
|
||
|
sprintf( __( 'Your %s Report will be emailed to you.', 'woocommerce-admin' ), reportTitle )
|
||
|
);
|
||
|
}
|
||
|
if ( response && response.error ) {
|
||
|
createNotice(
|
||
|
'error',
|
||
|
sprintf(
|
||
|
__(
|
||
|
'There was a problem exporting your %s Report. Please try again.',
|
||
|
'woocommerce-admin'
|
||
|
),
|
||
|
reportTitle
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
export default {
|
||
|
initiateReportExport,
|
||
|
};
|