aboutsummaryrefslogtreecommitdiff
path: root/vnext/src/api/index.js
blob: 653360f59e564f4aab567285cb05f5fbc3457ba6 (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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import axios from 'axios';

const apiBaseUrl = 'https://api.juick.com';

const client = axios.create({
    baseURL: apiBaseUrl
});
client.interceptors.request.use(config => {
    if (localStorage.visitor) {
        config.params = Object.assign(config.params || {}, {
            hash: JSON.parse(localStorage.visitor).hash
        });
    }
    return config;
})

export function me(username = '', password = '') {
    return new Promise((resolve, reject) => {

        client.get('/me', {
            headers: username ? {
                '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 post(body, attach) {
    let form = new FormData()
    form.append('attach', attach)
    form.append('body', body)
    return client.post('/post', form);
}

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)
}

function socialLink(network) {
    return `${apiBaseUrl}/_${network}login?state=${window.location.protocol}//${window.location.host}${window.location.pathname}`;
}

export function facebookLink() {
    return socialLink('fb');
}

export function vkLink() {
    return socialLink('vk');
}

export function markReadTracker(msg, visitor) {
    return `${apiBaseUrl}/thread/mark_read/${msg.mid}-${msg.rid || 0}.gif?hash=${visitor.hash}`;
}