UNPKG

commerce-vuex

Version:
61 lines (52 loc) 1.72 kB
import { auth, nav } from 'oak-vuex' const { getHubAuthHeader } = auth const { wrapRequest, wrapEmptyRequest } = nav const retainHubApiUrl = process.env.VUE_APP_RETAINHUB_COMMERCE_API_URL const retainhubHubName = process.env.VUE_APP_RETAINHUB_NAME const doDirectoryLookup = wrapRequest(({ nameLike, type }) => { const requestOptions = { method: 'POST', headers: { 'Content-type': 'application/json', 'Prefer': 'count=estimated', ...getHubAuthHeader(retainhubHubName) }, body: JSON.stringify( { name: nameLike, scope: type }) } return fetch(`${retainHubApiUrl}/rpc/directory_lookup`, requestOptions) }) const doFetchUploadSignatureAndPolicy = wrapRequest(({ name, type, bucket, region }) => { const requestOptions = { method: 'POST', headers: { 'Content-type': 'application/json', ...getHubAuthHeader(retainhubHubName) }, body: JSON.stringify( { name, type, bucket, region } ) }; return fetch(`${process.env.VUE_APP_RETAINHUB_OPS_API_URL}/s3-sign`, requestOptions); }); const doS3Upload = wrapEmptyRequest((file, signatureAndPolicy) => { const requestOptions = { method: 'PUT', headers: {}, body: file }; return fetch(signatureAndPolicy, requestOptions); }); /*const doS3Upload = (file, signatureAndPolicy) => { // const type = file.split(';')[0].split('/')[1] // const buffer = Buffer.from(file.replace(/^data:image\/\w+;base64,/, ""),'base64'); const requestOptions = { method: 'PUT', headers: {}, body: file }; return fetch(signatureAndPolicy, requestOptions); }*/ export default { doDirectoryLookup, doFetchUploadSignatureAndPolicy, doS3Upload, }