File "utils.js"
Full Path: /home/jlklyejr/public_html/post-date/wp-content/plugins/rave-woocommerce-payment-gateway/client/blocks/utils.js
File size: 2.03 KB
MIME-type: text/x-java
Charset: utf-8
/**
* WooCommerce dependencies
*/
import { getSetting, WC_ } from '@woocommerce/settings';
export const getBlocksConfiguration = () => {
const flutterwaveServerData = getSetting( 'rave_data', null );
if ( ! flutterwaveServerData ) {
throw new Error( 'Flutterwave initialization data is not available' );
}
return flutterwaveServerData;
};
/**
* Creates a payment request using cart data from WooCommerce.
*
* @param {Object} flutterwave - The Flutterwave JS object.
* @param {Object} cart - The cart data response from the store's AJAX API.
*
* @return {Object} A Flutterwave payment request.
*/
export const createPaymentRequestUsingCart = ( flutterwave, cart ) => {
const options = {
total: cart.order_data.total,
currency: cart.order_data.currency,
country: cart.order_data.country_code,
requestPayerName: true,
requestPayerEmail: true,
requestPayerPhone: getBlocksConfiguration()?.checkout
?.needs_payer_phone,
requestShipping: !!cart.shipping_required,
displayItems: cart.order_data.displayItems,
};
if ( options.country === 'PR' ) {
options.country = 'US';
}
return flutterwave.paymentRequest( options );
};
/**
* Updates the given PaymentRequest using the data in the cart object.
*
* @param {Object} paymentRequest The payment request object.
* @param {Object} cart The cart data response from the store's AJAX API.
*/
export const updatePaymentRequestUsingCart = ( paymentRequest, cart ) => {
const options = {
total: cart.order_data.total,
currency: cart.order_data.currency,
displayItems: cart.order_data.displayItems,
};
paymentRequest.update( options );
};
/**
* Returns the Flutterwave public key
*
* @throws Error
* @return {string} The public api key for the Flutterwave payment method.
*/
export const getPublicKey = () => {
const public_key = getBlocksConfiguration()?.public_key;
if ( ! public_key ) {
throw new Error(
'There is no public key available for Flutterwave. Make sure it is available on the wc.flutterwave_data.public_key property.'
);
}
return public_key;
};