import env from '../../env' export const uploadImage = (image: any, uploadPath?: string, token?: string) => { if (!token) { token = localStorage.getItem('token') || '' if (!token) { return Promise.reject(new Error('No token')) } try { token = JSON.parse(token).token as string } catch(e) { return Promise.reject(new Error('Invalid token')) } } return new Promise((res, rej) => { let data = new FormData() data.append('image', image) let that = new XMLHttpRequest() that.onerror = e => rej(e) that.onabort = e => rej(e) that.onreadystatechange = () => { if (that.readyState === 4) { let d: any try { d = JSON.parse(that.responseText) } catch(e) { return rej(new Error('Invalid response')) } if (d.error) { return rej(new Error(d.message || JSON.stringify(d))) } res(d.url) } } that.open('POST', env.API_HOST + (uploadPath || '/set-profile-picture'), true) that.setRequestHeader('Authorization', 'Bearer ' + token) that.setRequestHeader('device-id', localStorage.getItem('device_id') || '') that.send(data) }) }