| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import urljoin from 'url-join';
- import { SubscriptionStatusType } from '~/interfaces/subscription';
- import { toastError } from '../util/apiNotification';
- import { apiv3Post, apiv3Put } from '../util/apiv3-client';
- export const toggleSubscribe = async(pageId: string, currentStatus: SubscriptionStatusType | undefined): Promise<void> => {
- try {
- const newStatus = currentStatus === SubscriptionStatusType.SUBSCRIBE
- ? SubscriptionStatusType.UNSUBSCRIBE
- : SubscriptionStatusType.SUBSCRIBE;
- await apiv3Put('/page/subscribe', { pageId, status: newStatus });
- }
- catch (err) {
- toastError(err);
- }
- };
- export const toggleLike = async(pageId: string, currentValue?: boolean): Promise<void> => {
- try {
- await apiv3Put('/page/likes', { pageId, bool: !currentValue });
- }
- catch (err) {
- toastError(err);
- }
- };
- export const toggleBookmark = async(pageId: string, currentValue?: boolean): Promise<void> => {
- try {
- await apiv3Put('/bookmarks', { pageId, bool: !currentValue });
- }
- catch (err) {
- toastError(err);
- }
- };
- export const bookmark = async(pageId: string): Promise<void> => {
- try {
- await apiv3Put('/bookmarks', { pageId, bool: true });
- }
- catch (err) {
- toastError(err);
- }
- };
- export const unbookmark = async(pageId: string): Promise<void> => {
- try {
- await apiv3Put('/bookmarks', { pageId, bool: false });
- }
- catch (err) {
- toastError(err);
- }
- };
- export const exportAsMarkdown = (pageId: string, revisionId: string, format: string): void => {
- const url = new URL(urljoin(window.location.origin, '_api/v3/page/export', pageId));
- url.searchParams.append('format', format);
- url.searchParams.append('revisionId', revisionId);
- window.location.href = url.href;
- };
- /**
- * send request to fix broken paths caused by unexpected events such as server shutdown while renaming page paths
- */
- export const resumeRenameOperation = async(pageId: string): Promise<void> => {
- await apiv3Post('/pages/resume-rename', { pageId });
- };
|