commerce-vuex
Version:
Commerce vuex module
38 lines (34 loc) • 1.11 kB
JavaScript
import serviceDirectory from './directory.service';
const { doFetchUploadSignatureAndPolicy, doS3Upload } = serviceDirectory
export default {
namespaced: true,
state: {
imageUploadingInProgress: false,
},
mutations: {
imageUploadingInProgress(state, yesOrNo) {
state.imageUploadingInProgress = yesOrNo
},
},
actions: {
uploadToS3: async ({ commit }, { name, type, bucket, region, data }) => {
commit('imageUploadingInProgress', true);
try {
let signature = await doFetchUploadSignatureAndPolicy({
name, type, bucket, region
})
if (signature) {
await doS3Upload(data, signature.url, type);
}
}
catch (error) {
commit('imageUploadingInProgress', false);
console.log("error in upload to s3", error)
throw error;
}
finally {
commit('imageUploadingInProgress', false);
}
},
}
}