public/actions/TagActions/deleteTag.js (40 lines of code) (raw):
import tagManagerApi from '../../util/tagManagerApi';
import {clearError} from '../UIActions/clearError'
export const TAG_DELETE_REQUEST = 'TAG_DELETE_REQUEST';
export const TAG_DELETE_RECEIVE = 'TAG_DELETE_RECEIVE';
export const TAG_DELETE_ERROR = 'TAG_DELETE_ERROR';
function requestTagDelete() {
return {
type: TAG_DELETE_REQUEST,
receivedAt: Date.now()
};
}
function recieveTagDelete(tagId) {
return {
type: TAG_DELETE_RECEIVE,
tagId: tagId,
receivedAt: Date.now(),
message: 'Delete request submitted, will be processed once tag has been removed from all content (This may take some time..)'
};
}
function errorTagDelete(error) {
return {
type: TAG_DELETE_ERROR,
message: 'Could not delete tag',
error: error,
receivedAt: Date.now()
};
}
export function deleteTag(tag) {
return dispatch => {
dispatch(requestTagDelete());
return tagManagerApi.deleteTag(tag.id)
.then(res => {
dispatch(recieveTagDelete(tag.id));
setTimeout(() => {
dispatch(clearError());
}, 3000);
})
.fail(error => dispatch(errorTagDelete(error)));
};
}