import axios from 'axios'; const client = axios.create({ baseURL: 'https://api.juick.com/' }); client.interceptors.request.use(config => { if (localStorage.visitor) { config.params = Object.assign(config.params || {}, { hash: JSON.parse(localStorage.visitor).hash }); } return config; }) export function auth(username, password) { return new Promise((resolve, reject) => { client.get('/me', { headers: { 'Authorization': 'Basic ' + window.btoa(unescape(encodeURIComponent(username + ":" + password))) } }).then(response => { localStorage.visitor = JSON.stringify(response.data); resolve(response.data) }).catch(reason => { localStorage.clear() reject(reason) }) }); } export function getChats() { return client.get('/groups_pms') } export function getChat(userName) { return client.get('/pm', { params: { 'uname': userName } }) } export function pm(userName, body) { let form = new FormData(); form.set('uname', userName); form.set('body', body); return client.post('/pm', form) } export function getMessages(path, params) { return client.get(path, { params: params }) } export function comment(mid, rid, body, attach) { let form = new FormData(); form.append('mid', mid); form.append('rid', rid); form.append('body', body); form.append('attach', attach); return client.post('/comment', form) }