400 lines
15 KiB
JavaScript
400 lines
15 KiB
JavaScript
import { authHeader } from './auth';
|
|
import { wrapRequest, meWrapRequest } from './nav';
|
|
|
|
const vueAppMagenotApiUrl = import.meta.env.VITE_APP_MAGENTO_API_URL;
|
|
//const vueAppCCUrl = import.meta.env.VITE_APP_CC_URL;
|
|
const retailorId = import.meta.env.VITE_APP_RETAILOR_ID;
|
|
const vueAppNodeslsApiUrl = import.meta.env.VITE_APP_NODESLS_API_URL;
|
|
const assetNodeslsUrl = import.meta.env.VITE_APP_ASSETS_NODESLS_URL;
|
|
|
|
// export const doValidateAddress = wrapRequest((address) => {
|
|
// const requestOptions = {
|
|
// method: 'GET',
|
|
// };
|
|
// return fetch("https://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&key=AIzaSyDmHp0PPuKHD1KGHCDmLq1qQKr_03XKEHo", requestOptions);
|
|
// });
|
|
/*eslint-disable*/
|
|
export const doValidateAddress = wrapRequest((address) => {
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"address": {
|
|
"countryId": address.countryId,
|
|
"regionId": address.regionId,
|
|
"region": address.region ? address.region.region : "",
|
|
"street": [address.streetNoOne, address.streetNoTwo],
|
|
"company": address.company ? address.company : "",
|
|
"telephone": address.telephone,
|
|
"postcode": address.postcode,
|
|
"city": address.city,
|
|
"firstname": address.firstname,
|
|
"lastname": address.lastname,
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/carts/mine/validate-address`, requestOptions);
|
|
});
|
|
export const doValidateAddressCheckout = wrapRequest((address, stateName) => {
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
"address": {
|
|
"countryId": address.countryId,
|
|
"regionId": address.regionId,
|
|
"region": stateName,
|
|
"street": [address.streetNoOne, address.streetNoTwo],
|
|
"telephone": address.telephone,
|
|
"postcode": address.postcode,
|
|
"city": address.city,
|
|
"firstname": address.firstname,
|
|
"lastname": address.lastname,
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/shipping-information/validate-address`, requestOptions);
|
|
});
|
|
export const doFetchStates = wrapRequest(() => {
|
|
const requestOptions = {
|
|
method: 'GET',
|
|
headers: {
|
|
'Content-type': 'application/json'
|
|
}
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/directory/countries/US`, requestOptions)
|
|
|
|
});
|
|
export const doFetchCountries = wrapRequest(() => {
|
|
const requestOptions = {
|
|
method: 'GET',
|
|
headers: {
|
|
'Content-type': 'application/json'
|
|
}
|
|
};
|
|
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/directory/countries`, requestOptions)
|
|
|
|
});
|
|
export const doFetchBasicInfo = meWrapRequest(() => {
|
|
const requestOptions = {
|
|
method: 'GET',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/customers/me`, requestOptions)
|
|
});
|
|
/*
|
|
export const doFetchChangePassword = wrapRequest((token) => {
|
|
const requestOptions = {
|
|
method: 'PUT',
|
|
headers: { 'Content-type': 'application/json'
|
|
, 'Authorization' : `Bearer ${token}`}
|
|
};
|
|
|
|
return fetch(`https://magento2.test/rest/crn_retailer/V1/customers/retailer/password`, requestOptions)
|
|
|
|
});*/
|
|
export const doFetchChangePassword = async (currentPassword, newPassword) => {
|
|
|
|
/* eslint-disable no-alert, no-console , */
|
|
console.log("currentPassword: ", currentPassword)
|
|
console.log("newPassword : ", newPassword)
|
|
|
|
return false;
|
|
};
|
|
export const doUpdateAddress = meWrapRequest((one, address) => {
|
|
const requestOptions = {
|
|
method: 'PUT',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"customer": {
|
|
"firstname": one.firstname,
|
|
"lastname": one.lastname,
|
|
"email": one.email,
|
|
"website_id": one.websiteId,
|
|
"addresses": [{
|
|
"region_id": address.regionId,
|
|
"country_id": address.countryId,
|
|
"street": [
|
|
address.streetNoOne, address.streetNoTwo
|
|
],
|
|
"postcode": address.postcode,
|
|
"city": address.city,
|
|
"telephone": address.telephone,
|
|
"firstname": address.firstname,
|
|
"lastname": address.lastname
|
|
}],
|
|
"default_shipping": one.defaultShipping,
|
|
"default_billing": one.defaultBilling
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/customers/me`, requestOptions)
|
|
});
|
|
export const doUpdateUserAddress = meWrapRequest((one, addresses,customerNumber) => {
|
|
const requestOptions = {
|
|
method: 'PUT',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"customer": {
|
|
"firstname": one.firstname,
|
|
"lastname": one.lastname,
|
|
"email": one.email,
|
|
"website_id": one.websiteId,
|
|
"addresses": addresses,
|
|
"default_shipping": one.defaultShipping,
|
|
"default_billing": one.defaultBilling,
|
|
"custom_attributes": [
|
|
{
|
|
"attribute_code": "customer_number",
|
|
"value": customerNumber
|
|
}]
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/customers/me`, requestOptions)
|
|
});
|
|
export const doUpdateSubscription = meWrapRequest((one) => {
|
|
|
|
const requestOptions = {
|
|
method: 'PUT',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"customer": {
|
|
"firstname": one.firstname,
|
|
"lastname": one.lastname,
|
|
"email": one.email,
|
|
"website_id": one.websiteId,
|
|
"extension_attributes": {
|
|
"is_subscribed": one.extensionAttributes.isSubscribed
|
|
}
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/customers/retailer`, requestOptions)
|
|
});
|
|
export const doChangeBasicInfo = meWrapRequest((one,customerNumber) => {
|
|
const requestOptions = {
|
|
method: 'PUT',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"customer": {
|
|
"firstname": one.firstname,
|
|
"lastname": one.lastname,
|
|
"email": one.email,
|
|
"website_id": one.websiteId,
|
|
"custom_attributes": [
|
|
{
|
|
"attribute_code": "customer_number",
|
|
"value": customerNumber
|
|
}]
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/customers/me`, requestOptions)
|
|
});
|
|
export const doChangePassword = meWrapRequest((currentPassword, newPassword) => {
|
|
const requestOptions = {
|
|
method: 'PUT',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"currentPassword": currentPassword,
|
|
"newPassword": newPassword
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/customers/me/password`, requestOptions)
|
|
});
|
|
export const doFetchEstimatedShippingMethods = wrapRequest((one, address) => {
|
|
let streetAddress = [];
|
|
let streetArray = [];
|
|
if (address.streetNoTwo == " " || address.streetNoTwo == undefined) {
|
|
streetAddress[0] = address.streetNoOne;
|
|
streetArray = streetAddress.filter(v => v != '');
|
|
} else {
|
|
streetAddress[0] = address.streetNoOne
|
|
streetAddress[1] = address.streetNoTwo;
|
|
streetArray = streetAddress.filter(v => v != '');
|
|
}
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
/*"address": {
|
|
"region_id": regionId,
|
|
"country_id": countryId
|
|
}*/
|
|
"address": {
|
|
"region": address.region.region,
|
|
"region_id": address.regionId,
|
|
"region_code": address.regionCode,
|
|
"country_id": address.countryId,
|
|
"street": streetArray,
|
|
"postcode": address.postcode,
|
|
"city": address.city,
|
|
"firstname": address.firstname,
|
|
"lastname": address.lastname,
|
|
"customer_id": one.id,
|
|
"email": one.email,
|
|
"telephone": address.telephone,
|
|
"same_as_billing": 1
|
|
}
|
|
}),
|
|
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/carts/mine/estimate-shipping-methods`, requestOptions)
|
|
});
|
|
export const doShippingInformation = wrapRequest((one, address, estimated, suggestedAddress) => {
|
|
let streetAddress = [];
|
|
let streetArray = [];
|
|
if (address.streetNoTwo == " " || address.streetNoTwo == undefined) {
|
|
streetAddress[0] = suggestedAddress.streetNoOne ? suggestedAddress.streetNoOne : address.streetNoOne;
|
|
streetArray = streetAddress.filter(v => v != '');
|
|
} else {
|
|
streetAddress[0] = suggestedAddress.streetNoOne ? suggestedAddress.streetNoOne : address.streetNoOne
|
|
streetAddress[1] = suggestedAddress.streetNoTwo ? suggestedAddress.streetNoTwo : address.streetNoTwo;
|
|
streetArray = streetAddress.filter(v => v != '');
|
|
}
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"addressInformation": {
|
|
"shipping_address": {
|
|
"region_id": suggestedAddress.region_id ? suggestedAddress.region_id : address.regionId,
|
|
"country_id": suggestedAddress.country_id ? suggestedAddress.country_id : address.countryId,
|
|
"street": streetArray,
|
|
"postcode": suggestedAddress.postcode ? suggestedAddress.postcode : address.postcode,
|
|
"city": suggestedAddress.city ? suggestedAddress.city : address.city,
|
|
"firstname": address.firstname,
|
|
"lastname": address.lastname,
|
|
"customer_id": one.id,
|
|
"email": one.email,
|
|
"telephone": address.telephone
|
|
},
|
|
"shipping_carrier_code": estimated.carrierCode,
|
|
"shipping_method_code": estimated.methodCode
|
|
}
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/carts/mine/shipping-information`, requestOptions)
|
|
});
|
|
export const doDeleteAddress = wrapRequest((addressId) => {
|
|
const requestOptions = {
|
|
method: 'DELETE',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
'Access-Control-Allow-Origin': '*',
|
|
...authHeader()
|
|
}
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/addresses/${addressId}`, requestOptions)
|
|
});
|
|
|
|
export const doProductsOrder = meWrapRequest((userQuote, paymentMethod, oneAddress) => {
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
...authHeader()
|
|
},
|
|
body: JSON.stringify({
|
|
"cartId": userQuote,
|
|
"billingAddress": oneAddress,
|
|
"paymentMethod": paymentMethod,
|
|
"comments": "",
|
|
})
|
|
};
|
|
return fetch(`${vueAppMagenotApiUrl}/rest/crn_retailer/V1/carts/mine/payment-information`, requestOptions)
|
|
});
|
|
|
|
/*export const doProductsOrderOnCC = meWrapRequest((orderNumber, shippingAddress, webOrderNumber) => {
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type':'text/xml',
|
|
},
|
|
};
|
|
let address2 = shippingAddress.street[1]? '&ShipToAddress2='+shippingAddress.street[1] : '';
|
|
return fetch(`${vueAppCCUrl}?Operation=SUBMIT&RetailerID=${retailorId}&OrderNumber=${orderNumber}&ShipToFirstName=${shippingAddress.firstname}&ShipToLastName=${shippingAddress.lastname}&ShipToAddress1=${shippingAddress.street[0]}${address2}&ShipToCity=${shippingAddress.city}&ShipToState=${shippingAddress.regionCode}&ShipToZip=${shippingAddress.postcode}&ShipToCountry=${shippingAddress.countryId}&ShipToPhone=${shippingAddress.telephone}&ShipToEmail=${shippingAddress.email}&ShippingMethod=usp&WebOrderNumber=${webOrderNumber}`, requestOptions)
|
|
});*/
|
|
export const doProductsOrderOnCC = meWrapRequest((orderNumber, shippingAddress, webOrderNumber, estimatedShipping) => {
|
|
let address2 = shippingAddress.street[1] ? escape(shippingAddress.street[1]) : undefined;
|
|
let method = 'bes';
|
|
if (estimatedShipping) {
|
|
method = estimatedShipping.methodCode.substring(0, 3);
|
|
}
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
"retailorId": retailorId,
|
|
"orderNumber": orderNumber,
|
|
"shipToFirstName": escape(shippingAddress.firstname),
|
|
"shipToLastName": escape(shippingAddress.lastname),
|
|
"shipToAddress1": escape(shippingAddress.street[0]),
|
|
"shipToAddress2": address2,
|
|
"shipToCity": shippingAddress.city,
|
|
"shipToState": shippingAddress.regionCode,
|
|
"shipToZip": shippingAddress.postcode,
|
|
"shipToCountry": shippingAddress.countryId,
|
|
"shipToPhone": shippingAddress.telephone,
|
|
"shipToEmail": shippingAddress.email,
|
|
"shippingMethod": method,
|
|
"webOrderNumber": webOrderNumber
|
|
})
|
|
};
|
|
|
|
return fetch(`${vueAppNodeslsApiUrl}/cc-submit-order`, requestOptions)
|
|
});
|
|
/* personalise order
|
|
export const doProductsOrderOnPersonalize = meWrapRequest((order) => {
|
|
const requestOptions = {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-type': 'application/json',
|
|
},
|
|
body: JSON.stringify({
|
|
"order": order
|
|
})
|
|
};
|
|
return fetch(`http://order.crane.com/Incoming/input`, requestOptions)
|
|
});*/
|
|
|
|
|
|
export const doFetchProductPdfs = meWrapRequest((orderNumber, itemId) => {
|
|
const requestOptions = {
|
|
method: 'GET'
|
|
};
|
|
return fetch(`${assetNodeslsUrl}/order-builder-2?orderId=${orderNumber}&itemId=${itemId}`, requestOptions)
|
|
}); |