import axios from 'axios'; export const apiServer = axios.create({ baseURL: '/api/', validateStatus: () => true }); export async function boot() { return apiServer.get('/boot'); } export async function setup(name, password) { return apiServer.post('/setup', { name, password }); } export async function logIn(name, password) { return apiServer.post('/auth/login', { name, password }); } export async function logOut() { return apiServer.post('/auth/logout', {}); } export async function changePassword(password, to) { return apiServer.post('/password', { password, to }); } export async function createChannel(name) { return apiServer.post('/channels', { name }); } export async function postToChannel(channelId, body) { return apiServer.post(`/channels/${channelId}`, { body }); } export async function deleteMessage(messageId) { return apiServer.delete(`/messages/${messageId}`, {}); } export async function createInvite() { return apiServer.post(`/invite`, {}); } export async function getInvite(inviteId) { return apiServer.get(`/invite/${inviteId}`); } export async function acceptInvite(inviteId, name, password) { const data = { name, password }; return apiServer.post(`/invite/${inviteId}`, data); } export function subscribeToEvents(resumePoint) { const eventsUrl = apiServer.getUri({ url: '/events', params: { resume_point: resumePoint } }); return new EventSource(eventsUrl); }