diff options
| author | Adam Soltys <[email protected]> | 2022-09-02 16:43:47 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2022-09-02 16:43:48 -0700 |
| commit | 2cc02377f8fa007c92cad53848b655667a09d7d3 (patch) | |
| tree | ac4d46e9d205d65fe4ed526dac2789721f39b285 /src/lib/upload.js | |
| parent | cc01d4333dfe9aca72193d22bed94ddf41cb6048 (diff) | |
| download | coinos-ui-2cc02377f8fa007c92cad53848b655667a09d7d3.tar.gz coinos-ui-2cc02377f8fa007c92cad53848b655667a09d7d3.zip | |
upload endpoint
Diffstat (limited to 'src/lib/upload.js')
| -rw-r--r-- | src/lib/upload.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/upload.js b/src/lib/upload.js new file mode 100644 index 00000000..e7a73fee --- /dev/null +++ b/src/lib/upload.js @@ -0,0 +1,24 @@ +import { get } from 'svelte/store'; +import { token } from '$lib/store'; + +export const upload = async (file, progress) => { + let url = '/api/profile'; + let formData = new FormData(); + formData.append('file', file); + + console.log('uploading', file); + + return new Promise((resolve, reject) => { + let ajax = new XMLHttpRequest(); + ajax.addEventListener('load', () => { + if (ajax.readyState === ajax.DONE) { + if (ajax.status === 200) resolve(ajax.response); + else reject(new Error(`Upload failed: ${ajax.response}`)); + } + }); + ajax.upload.addEventListener('progress', progress, false); + ajax.open('POST', url); + ajax.setRequestHeader('Authorization', `Bearer ${get(token)}`); + ajax.send(formData); + }); +}; |
