1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-31 02:59:46 +02:00
planka/client/src/api/users.js

101 lines
2.3 KiB
JavaScript
Raw Normal View History

2019-08-31 04:07:25 +05:00
import http from './http';
import socket from './socket';
/* Transformers */
export const transformUser = (user) => ({
...user,
createdAt: new Date(user.createdAt),
});
2019-08-31 04:07:25 +05:00
/* Actions */
const getUsers = (headers) =>
socket.get('/users', undefined, headers).then((body) => ({
...body,
items: body.items.map(transformUser),
}));
2019-08-31 04:07:25 +05:00
const createUser = (data, headers) =>
socket.post('/users', data, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
2019-08-31 04:07:25 +05:00
const getUser = (id, headers) =>
socket.get(`/users/${id}`, undefined, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
2023-01-05 15:03:06 +01:00
const getCurrentUser = (subscribe, headers) =>
socket.get(`/users/me${subscribe ? '?subscribe=true' : ''}`, undefined, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
2019-08-31 04:07:25 +05:00
const updateUser = (id, data, headers) =>
socket.patch(`/users/${id}`, data, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
2019-08-31 04:07:25 +05:00
const updateUserEmail = (id, data, headers) =>
socket.patch(`/users/${id}/email`, data, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
const updateUserPassword = (id, data, headers) =>
socket.patch(`/users/${id}/password`, data, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
const updateUserUsername = (id, data, headers) =>
socket.patch(`/users/${id}/username`, data, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
const updateUserAvatar = (id, data, headers) =>
http.post(`/users/${id}/avatar`, data, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
const deleteUser = (id, headers) =>
socket.delete(`/users/${id}`, undefined, headers).then((body) => ({
...body,
item: transformUser(body.item),
}));
/* Event handlers */
const makeHandleUserCreate = (next) => (body) => {
next({
...body,
item: transformUser(body.item),
});
};
2020-04-03 00:35:25 +05:00
const makeHandleUserUpdate = makeHandleUserCreate;
2019-08-31 04:07:25 +05:00
const makeHandleUserDelete = makeHandleUserCreate;
2019-08-31 04:07:25 +05:00
export default {
getUsers,
createUser,
getUser,
2019-08-31 04:07:25 +05:00
getCurrentUser,
updateUser,
updateUserEmail,
updateUserPassword,
2020-04-03 00:35:25 +05:00
updateUserUsername,
2020-04-21 05:04:34 +05:00
updateUserAvatar,
2019-08-31 04:07:25 +05:00
deleteUser,
makeHandleUserCreate,
makeHandleUserUpdate,
makeHandleUserDelete,
2019-08-31 04:07:25 +05:00
};