diff --git a/ayanova/src/api/gzapi.js b/ayanova/src/api/gzapi.js index 6e6b5afb..6d210c05 100644 --- a/ayanova/src/api/gzapi.js +++ b/ayanova/src/api/gzapi.js @@ -529,6 +529,50 @@ export default { } catch (error) { handleError("POSTATTACHMENT", error, route); } + }, + ////////////////////////////////////////////// + // POST (UPLOAD) FILE TO ARBITRARY ROUTE + // for various things that require an upload + // e.g. translation import etc + // + // + async upload(route, at) { + let that = this; + try { + var files = at.files; + var data = new FormData(); + for (var i = 0; i < files.length; i++) { + data.append(files[i].name, files[i]); + } + if (at.ayaType) { + data.append("ObjectType", at.ayaType); + } + if (at.ayaId) { + data.append("ObjectId", at.ayaId); + } + if (at.notes) { + data.append("Notes", at.notes); + } + data.append("FileData", at.fileData); + + //----------------- + + let fetchOptions = { + method: "post", + mode: "cors", + headers: { + Authorization: "Bearer " + window.$gz.store.state.apiToken + }, + body: data + }; + + let r = await fetch(that.APIUrl(route), fetchOptions); + that.statusEx(r); + r = await that.extractBodyEx(r); + return r; + } catch (error) { + handleError("POSTATTACHMENT", error, route); + } } //---------------