-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathapi.js
26 lines (24 loc) · 947 Bytes
/
api.js
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
import axios from "axios";
const callApi = async (method, path, data, jwt, params = {}) => {
const headers = {
Authorization: `Bearer ${jwt}`,
"Content-Type": "application/json"
};
const baseUrl = "http://127.0.0.1:8000/api/v1";
const fullUrl = `${baseUrl}${path}`;
if (method === "get" || method === "delete") {
return axios[method](fullUrl, { headers, params });
} else {
return axios[method](fullUrl, data, { headers });
}
};
export default {
createAccount: form => callApi("post", "/users/", form),
login: form => callApi("post", "/users/login/", form),
rooms: (page = 1, token) =>
callApi("get", `/rooms/?page=${page}`, null, token),
favs: (id, token) => callApi("get", `/users/${id}/favs/`, null, token),
toggleFavs: (userId, roomId, token) =>
callApi("put", `/users/${userId}/favs/`, { pk: roomId }, token),
search: (form, token) => callApi("get", "/rooms/search/", null, token, form)
};