181 lines
3.8 KiB
JavaScript
181 lines
3.8 KiB
JavaScript
import { siteId, url } from './settings';
|
|
|
|
import fetcher from './fetcher';
|
|
|
|
// TODO: rename actions
|
|
|
|
/* common */
|
|
|
|
export const logOut = () => fetcher.get({ url: `/auth/logout`, overriddenApiBase: '' });
|
|
|
|
export const getConfig = () => fetcher.get(`/config`);
|
|
|
|
// TODO: looks like we can get url from settings here and below
|
|
export const getPostComments = ({ sort, url }) => fetcher.get(`/find?url=${url}&sort=${sort}&format=tree`);
|
|
|
|
export const getLastComments = ({ siteId, max }) => fetcher.get(`/last/${max}?site=${siteId}`);
|
|
|
|
export const getCommentsCount = ({ urls, siteId }) =>
|
|
fetcher.post({
|
|
url: `/counts?site=${siteId}`,
|
|
body: urls,
|
|
});
|
|
|
|
export const getComment = ({ id }) => fetcher.get(`/id/${id}?url=${url}`);
|
|
|
|
export const getUserComments = ({ user, limit }) => fetcher.get(`/comments?user=${user}&limit=${limit}`);
|
|
|
|
export const putCommentVote = ({ id, url, value }) =>
|
|
fetcher.put({
|
|
url: `/vote/${id}?url=${url}&vote=${value}`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const addComment = ({ title, text, pid }) =>
|
|
fetcher.post({
|
|
url: '/comment',
|
|
body: {
|
|
title,
|
|
text,
|
|
locator: {
|
|
site: siteId,
|
|
url,
|
|
},
|
|
...(pid ? { pid } : {}),
|
|
},
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const updateComment = ({ text, id }) =>
|
|
fetcher.put({
|
|
url: `/comment/${id}?url=${url}`,
|
|
body: {
|
|
text,
|
|
},
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const removeMyComment = ({ id }) =>
|
|
fetcher.put({
|
|
url: `/comment/${id}?url=${url}`,
|
|
body: {
|
|
delete: true,
|
|
},
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const getPreview = ({ text }) =>
|
|
fetcher.post({
|
|
url: '/preview',
|
|
body: {
|
|
text,
|
|
},
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const getUser = () =>
|
|
fetcher.get({
|
|
url: '/user',
|
|
withCredentials: true,
|
|
});
|
|
|
|
/* GDPR */
|
|
|
|
export const deleteMe = () =>
|
|
fetcher.post({
|
|
url: `/deleteme?site=${siteId}`,
|
|
});
|
|
|
|
export const approveDeleteMe = token =>
|
|
fetcher.get({
|
|
url: `/admin/deleteme?token=${token}`,
|
|
});
|
|
|
|
/* admin */
|
|
export const pinComment = ({ id, url }) =>
|
|
fetcher.put({
|
|
url: `/admin/pin/${id}?url=${url}&pin=1`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const unpinComment = ({ id, url }) =>
|
|
fetcher.put({
|
|
url: `/admin/pin/${id}?url=${url}&pin=0`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const setVerifyStatus = ({ id }) =>
|
|
fetcher.put({
|
|
url: `/admin/verify/${id}?verified=1`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const removeVerifyStatus = ({ id }) =>
|
|
fetcher.put({
|
|
url: `/admin/verify/${id}?verified=0`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const removeComment = ({ id }) =>
|
|
fetcher.delete({
|
|
url: `/admin/comment/${id}?url=${url}`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const blockUser = ({ id, ttl }) =>
|
|
fetcher.put({
|
|
url: ttl === 'permanently' ? `/admin/user/${id}?block=1` : `/admin/user/${id}?block=1&ttl=${ttl}`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const unblockUser = ({ id }) =>
|
|
fetcher.put({
|
|
url: `/admin/user/${id}?block=0`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const getBlocked = () =>
|
|
fetcher.get({
|
|
url: '/admin/blocked',
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const disableComments = () =>
|
|
fetcher.put({
|
|
url: `/admin/readonly?site=${siteId}&url=${url}&ro=1`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export const enableComments = () =>
|
|
fetcher.put({
|
|
url: `/admin/readonly?site=${siteId}&url=${url}&ro=0`,
|
|
withCredentials: true,
|
|
});
|
|
|
|
export default {
|
|
logOut,
|
|
getConfig,
|
|
getPostComments,
|
|
getLastComments,
|
|
getCommentsCount,
|
|
getComment,
|
|
getUserComments,
|
|
putCommentVote,
|
|
addComment,
|
|
updateComment,
|
|
removeMyComment,
|
|
getUser,
|
|
getPreview,
|
|
|
|
pinComment,
|
|
unpinComment,
|
|
setVerifyStatus,
|
|
removeVerifyStatus,
|
|
removeComment,
|
|
blockUser,
|
|
unblockUser,
|
|
getBlocked,
|
|
disableComments,
|
|
enableComments,
|
|
};
|