message modal and api fix

This commit is contained in:
rohan09-raj 2022-08-26 09:13:22 +05:30
parent 2fae816ce7
commit 794d996eac
6 changed files with 54 additions and 14 deletions

View file

@ -11,17 +11,18 @@ import {useQuery, useMutation} from 'react-query';
import {useNavigate} from 'react-router-dom';
import BackButton from '../../components/BackButton/BackButton';
import {sendMessage} from '../../services/apiservice';
import Spinner from '../../components/Spinner/Spinner';
import styles from './EnrollmentRequests.module.css';
import MessageModal from '../../components/Modal/MessageModal';
const EnrollmentRequests = () => {
const navigate = useNavigate();
const {data, refetch} = useQuery('unverified', getUnverifiedUsers);
const deleteUse = useMutation((id) => deleteUser(id), {
onSuccess: () => {
refetch();
},
});
const [open, setOpen] = React.useState(false);
const [message, setMessage] = React.useState('');
const {data, refetch, isLoading} = useQuery('unverified', getUnverifiedUsers);
const deleteUse = useMutation((payload) => deleteUser(payload));
const updateUse = useMutation((id) => updateUser(id, {verified: true}), {
onSuccess: () => {
@ -33,6 +34,23 @@ const EnrollmentRequests = () => {
sendMessage(payload);
});
const handleModalClick = (item) => {
deleteUse.mutate(item._id, {
onSuccess: () => {
setConfirm.mutate({
mobile: `+91${item.mobile}`,
message: message,
});
setOpen(false);
refetch();
},
});
};
if (isLoading) {
return <Spinner heading='Admin' />;
}
return (
<div className={styles.unverified_users}>
<Header subheading='Admin' />
@ -52,9 +70,16 @@ const EnrollmentRequests = () => {
title='Reject'
color='red'
onClick={() => {
deleteUse.mutate(item._id);
setOpen(true);
}}
/>
<MessageModal
title='Reason for Reject'
open={open}
setOpen={setOpen}
onChange={(e) => setMessage(e.target.value)}
onClick={() => handleModalClick(item)}
/>
</div>
))
) : (

View file

@ -4,7 +4,7 @@ import Button from '../../components/Button/Button';
import Header from '../../components/Header/Header';
import {
deleteUser,
getUnverifiedUsers,
getUpdatingUsers,
updateUser,
} from '../../services/apiservice';
import {useQuery, useMutation} from 'react-query';
@ -16,8 +16,8 @@ import Spinner from '../../components/Spinner/Spinner';
const UpdateRequests = () => {
const navigate = useNavigate();
const {data, isLoading, isError, refetch} = useQuery(
'unverified',
getUnverifiedUsers
'updating',
getUpdatingUsers
);
const deleteUse = useMutation((id) => deleteUser(id), {
onSuccess: () => {

View file

@ -24,12 +24,12 @@ export const deleteUser = async (id) => {
return response;
};
export const updatingUsers = async () => {
export const getUpdatingUsers = async () => {
const response = await apiClient.get(`/users/updating`);
return response;
};
export const sendMessage = async (payload) => {
const response = await apiClient.post('/message', payload);
const response = await apiClient.post('/messages', payload);
return response;
};

View file

@ -26,4 +26,15 @@ const sendMessage = async (req, res) => {
}
};
export default {sendOTP, sendMessage};
const sendMessages = async (req, res) => {
const {mobile, message} = req.body;
try {
sendSMS(mobile, message);
res.status(200).json({message: 'Message sent successfully'});
} catch (error) {
res.status(404).json({message: error});
}
};
export default {sendOTP, sendMessage, sendMessages};

View file

@ -121,7 +121,10 @@ const deleteUser = async (req, res) => {
const getUpdatingUsers = async (req, res) => {
try {
const updatingUsers = await UserDetails.find({isUpdating: true});
const updatingUsers = await UserDetails.find({
isUpdating: true,
verified: true,
});
return res.status(200).json(updatingUsers);
} catch (error) {
res.status(404).json({message: error.message});

View file

@ -5,5 +5,6 @@ const router = Express.Router();
router.post('/otp', message.sendOTP);
router.post('/message', message.sendMessage);
router.post('/messages', message.sendMessages);
export default router;