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 = ({ text, pid }) => fetcher.post({ url: '/comment', body: { 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, };