import api from '../api' import { openModal, closeModal } from './modal' import { MODAL_REPORT } from '../constants' export const REPORT_INIT = 'REPORT_INIT' export const REPORT_CANCEL = 'REPORT_CANCEL' export const REPORT_SUBMIT_REQUEST = 'REPORT_SUBMIT_REQUEST' export const REPORT_SUBMIT_SUCCESS = 'REPORT_SUBMIT_SUCCESS' export const REPORT_SUBMIT_FAIL = 'REPORT_SUBMIT_FAIL' export const REPORT_STATUS_TOGGLE = 'REPORT_STATUS_TOGGLE' export const REPORT_COMMENT_CHANGE = 'REPORT_COMMENT_CHANGE' export const REPORT_FORWARD_CHANGE = 'REPORT_FORWARD_CHANGE' /** * */ export const initReport = (account, status) => (dispatch) => { dispatch({ type: REPORT_INIT, account, status, }) dispatch(openModal(MODAL_REPORT)) } /** * */ export const cancelReport = () => ({ type: REPORT_CANCEL, }) /** * */ export const toggleStatusReport = (statusId, checked) => ({ type: REPORT_STATUS_TOGGLE, statusId, checked, }) /** * */ export const submitReport = () => (dispatch, getState) => { dispatch(submitReportRequest()) api(getState).post('/api/v1/reports', { account_id: getState().getIn(['reports', 'new', 'account_id']), status_ids: getState().getIn(['reports', 'new', 'status_ids']), comment: getState().getIn(['reports', 'new', 'comment']), forward: getState().getIn(['reports', 'new', 'forward']), }).then((response) => { dispatch(closeModal()); dispatch(submitReportSuccess(response.data)) }).catch((error) => dispatch(submitReportFail(error))) } const submitReportRequest = () => ({ type: REPORT_SUBMIT_REQUEST, }) const submitReportSuccess = (report) => ({ type: REPORT_SUBMIT_SUCCESS, showToast: true, report, }) const submitReportFail = (error) => ({ type: REPORT_SUBMIT_FAIL, showToast: true, error, }) /** * */ export const changeReportComment = (comment) => ({ type: REPORT_COMMENT_CHANGE, comment, })