aboutsummaryrefslogtreecommitdiff
path: root/vnext/src/api/index.js
blob: 130a5dc29ddb52f9b439bebc2d4a7cac557b02de (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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)
}