59 lines
1.0 KiB
JavaScript
59 lines
1.0 KiB
JavaScript
/**
|
|
* 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,
|
|
};
|