migrated scheduled posts apis

This commit is contained in:
Nouman Tahir 2021-07-02 16:47:43 +05:00
parent 40420ef9e4
commit 942633583b
3 changed files with 105 additions and 46 deletions

View File

@ -396,45 +396,107 @@ export const searchTag = (q = '', limit = 20, random = 0) =>
}); });
}); });
// Schedule
export const schedule = (
user, /**
title, * ************************************
permlink, * SCHEDULES ECENCY APIS IMPLEMENTATION
json, * ************************************
tags, */
body,
operationType, /**
upvote, * Adds new post to scheduled posts
scheduleDate, * @param permlink
options = null, * @param title
) => * @param body
api * @param meta
.post('/schedules', { * @param options
username: user, * @param scheduleDate
* @returns All scheduled posts
*/
export const addSchedule = async (
permlink:string,
title:string,
body:string,
meta:any,
options:any,
scheduleDate:string
) => {
try {
const data = {
title, title,
permlink, permlink,
meta: json, meta,
body, body,
schedule: scheduleDate, schedule: scheduleDate,
options, options,
reblog: 0, reblog: 0,
}) }
.then((resp) => resp.data) const response = await ecencyApi
.catch((error) => bugsnag.notify(error)); .post('/private-api/schedules-add', data)
return response.data;
} catch(error) {
console.warn("Failed to add post to schedule", error)
bugsnag.notify(error);
throw error;
}
}
export const getSchedules = (username) => /**
api * Fetches all scheduled posts against current user
.get(`/schedules/${username}`) * @returns array of app scheduled posts
.then((resp) => resp.data) */
.catch((error) => bugsnag.notify(error)); export const getSchedules = async () => {
try {
const response = await ecencyApi.post(`/private-api/schedules`)
return response.data;
} catch(error){
console.warn("Failed to get schedules")
bugsnag.notify(error)
throw error;
}
}
export const removeSchedule = (username, id) => api.delete(`/schedules/${username}/${id}`); /**
* Removes post from scheduled posts using post id;
* @param id
* @returns array of scheduled posts
*/
export const deleteScheduledPost = async (id:string) => {
try {
const data = { id };
const response = await ecencyApi.post(`/private-api/schedules-delete`, data);
return response;
}catch(error){
console.warn("Failed to delete scheduled post")
bugsnag.notify(error)
throw error;
}
}
export const moveSchedule = (id, username) => api.put(`/schedules/${username}/${id}`); /**
* Moves scheduled post to draft using schedule id
* @param id
* @returns Array of scheduled posts
*/
export const moveScheduledToDraft = async (id:string) => {
try {
const data = { id }
const response = await ecencyApi.post(`/private-api/schedules-move`, data);
return response.data;
} catch(error) {
console.warn("Failed to move scheduled post to drafts")
bugsnag.notify(error)
throw error;
}
}
// Old image service // Old image service
// Images /**
* ************************************
* IMAGES ECENCY APIS IMPLEMENTATION
* ************************************
*/
export const getImages = async () => { export const getImages = async () => {

View File

@ -8,8 +8,8 @@ import {
getDrafts, getDrafts,
removeDraft, removeDraft,
getSchedules, getSchedules,
removeSchedule, moveScheduledToDraft,
moveSchedule, deleteScheduledPost,
} from '../../../providers/ecency/ecency'; } from '../../../providers/ecency/ecency';
import { toastNotification } from '../../../redux/actions/uiAction'; import { toastNotification } from '../../../redux/actions/uiAction';
@ -38,7 +38,7 @@ const DraftsContainer = ({ currentAccount, intl, navigation, dispatch }) => {
const _getSchedules = () => { const _getSchedules = () => {
setIsLoading(true); setIsLoading(true);
getSchedules(currentAccount.name) getSchedules()
.then((data) => { .then((data) => {
setSchedules(_sortDataS(data)); setSchedules(_sortDataS(data));
setIsLoading(false); setIsLoading(false);
@ -75,7 +75,7 @@ const DraftsContainer = ({ currentAccount, intl, navigation, dispatch }) => {
}; };
const _removeSchedule = (id) => { const _removeSchedule = (id) => {
removeSchedule(currentAccount.name, id) deleteScheduledPost(id)
.then((res) => { .then((res) => {
const newSchedules = [...schedules].filter((schedule) => schedule._id !== id); const newSchedules = [...schedules].filter((schedule) => schedule._id !== id);
@ -87,7 +87,7 @@ const DraftsContainer = ({ currentAccount, intl, navigation, dispatch }) => {
}; };
const _moveScheduleToDraft = (id) => { const _moveScheduleToDraft = (id) => {
moveSchedule(id, currentAccount.name) moveScheduledToDraft(id)
.then((res) => { .then((res) => {
dispatch( dispatch(
toastNotification( toastNotification(
@ -100,7 +100,8 @@ const DraftsContainer = ({ currentAccount, intl, navigation, dispatch }) => {
_getDrafts(); _getDrafts();
_getSchedules(); _getSchedules();
}) })
.catch(() => { .catch((error) => {
console.warn("Failed to move scheduled post to drafts")
dispatch(toastNotification(intl.formatMessage({ id: 'alert.fail' }))); dispatch(toastNotification(intl.formatMessage({ id: 'alert.fail' })));
}); });
}; };

View File

@ -13,8 +13,8 @@ import {
uploadImage, uploadImage,
addDraft, addDraft,
updateDraft, updateDraft,
schedule,
getDrafts, getDrafts,
addSchedule,
} from '../../../providers/ecency/ecency'; } from '../../../providers/ecency/ecency';
import { toastNotification, setRcOffer } from '../../../redux/actions/uiAction'; import { toastNotification, setRcOffer } from '../../../redux/actions/uiAction';
import { import {
@ -938,19 +938,14 @@ class EditorContainer extends Component {
beneficiaries: beneficiaries, beneficiaries: beneficiaries,
}); });
schedule( addSchedule(
data.author,
data.fields.title,
data.permlink, data.permlink,
data.jsonMeta, data.fields.title,
data.fields.tags,
data.fields.body, data.fields.body,
'', data.jsonMeta,
'',
data.scheduleDate,
options, options,
) data.scheduleDate,
.then(() => { ) .then(() => {
this.setState({ this.setState({
isPostSending: false, isPostSending: false,
}); });
@ -977,7 +972,8 @@ class EditorContainer extends Component {
}); });
}, 3000); }, 3000);
}) })
.catch((err) => { .catch((error) => {
console.warn("Failed to schedule post", error);
this.setState({ this.setState({
isPostSending: false, isPostSending: false,
}); });