diff --git a/src/views/SimproV2/ResourceWorker/DialogForm.js b/src/views/SimproV2/ResourceWorker/DialogForm.js index 1067ed3..1422e2e 100644 --- a/src/views/SimproV2/ResourceWorker/DialogForm.js +++ b/src/views/SimproV2/ResourceWorker/DialogForm.js @@ -3,7 +3,7 @@ import { Modal, ModalHeader, ModalBody, ModalFooter, Button, Form, FormGroup, Label, Input, Col, Row } from 'reactstrap'; -import { DatePicker, Tooltip, Select, Input as InputAntd } from 'antd'; +import { DatePicker, Select, Input as InputAntd } from 'antd'; import moment from 'moment'; import 'antd/dist/antd.css'; import { formatNumber } from '../../../const/CustomFunc' @@ -223,7 +223,7 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); }; - const renderForm = () => { + const renderFormAddUser = () => { return (
@@ -383,7 +383,7 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi ) } - const renderForm2 = () => { + const renderFormSetUser = () => { return ( @@ -420,19 +420,16 @@ const DialogForm = ({ openDialog, closeDialog, toggleDialog, typeDialog, dataEdi - - ) } - return ( <> {typeDialog == "Save" ? `Add` : "Edit"} {t('hr')} - {typeDialog !== "Set" ? renderForm() : renderForm2()} + {typeDialog !== "Set" ? renderFormAddUser() : renderFormSetUser()} {' '} diff --git a/src/views/SimproV2/ResourceWorker/index.js b/src/views/SimproV2/ResourceWorker/index.js index 466daf9..340d48a 100644 --- a/src/views/SimproV2/ResourceWorker/index.js +++ b/src/views/SimproV2/ResourceWorker/index.js @@ -460,18 +460,29 @@ const ResourceWorker = ({ params, ...props }) => { } const saveUser = async (data) => { - const formData = data - const result = await axios.post(USER_ADD, formData, HEADER) - .then(res => res) - .catch((error) => error.response); - - if (result && result.data && result.data.code === 200) { - getDataUser(); - NotificationManager.success(`Data resource berhasil ditambah`, 'Success!!'); - } else { - NotificationManager.error(`${result.data.message}`, 'Failed!!'); + try { + const result = await axios.post(USER_ADD, data, HEADER); + if (result.data.code === 200) { + getDataUser(); + NotificationManager.success(`Data resource berhasil ditambah`, 'Success!!'); + } else { + NotificationManager.error(result.data.message, 'Failed!!'); + } + } catch (error) { + if (error.response && error.response.data) { + const errors = error.response.data; + setOpenDialog(true); + for (const [field, messages] of Object.entries(errors)) { + messages.forEach(message => { + NotificationManager.error(message, `Error validation`); + }); + } + } else { + setOpenDialog(true); + NotificationManager.error('Internal server error', 'Error!!'); + } } - } + }; const saveUserShift = async (data) => { const formData = data @@ -488,19 +499,32 @@ const ResourceWorker = ({ params, ...props }) => { } const editUser = async (data) => { - let urlEdit = USER_EDIT(data.id) const formData = data - const result = await axios.put(urlEdit, formData, HEADER) + try { + const result = await axios.put(urlEdit, formData, HEADER) .then(res => res) .catch((error) => error.response); - - if (result && result.data && result.data.code === 200) { - getDataUser(); - NotificationManager.success(`Data resource berhasil diedit`, 'Success!!'); - } else { - NotificationManager.error(`${result.data.message}`, `Failed!!`); + if (result && result.data && result.data.code === 200) { + getDataUser(); + NotificationManager.success(`Data resource berhasil diedit`, 'Success!!'); + } else { + NotificationManager.error(`${result.data.message}`, `Failed!!`); + } + } catch (error) { + if (error.response && error.response.data) { + const errors = error.response.data; + setOpenDialog(true); + for (const [field, messages] of Object.entries(errors)) { + messages.forEach(message => { + NotificationManager.error(message, `Error validation`); + }); + } + } else { + setOpenDialog(true); + NotificationManager.error('Internal server error', 'Error!!'); + } } }