Code cleanup
This commit is contained in:
@@ -3,7 +3,6 @@ import { API_BASE_URL } from '../constants/api';
|
|||||||
export const scheduleApi = {
|
export const scheduleApi = {
|
||||||
scheduleMessage: async (reqBody, authBearerToken) => {
|
scheduleMessage: async (reqBody, authBearerToken) => {
|
||||||
console.log('Scheduling message');
|
console.log('Scheduling message');
|
||||||
console.log(`Request body: ${reqBody}`);
|
|
||||||
|
|
||||||
const response = await fetch(`${API_BASE_URL}/api/v1/schedule/message`, {
|
const response = await fetch(`${API_BASE_URL}/api/v1/schedule/message`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
@@ -23,7 +22,6 @@ export const scheduleApi = {
|
|||||||
|
|
||||||
prepareMessage: async (reqBody, authBearerToken) => {
|
prepareMessage: async (reqBody, authBearerToken) => {
|
||||||
console.log('Preparing Scheduled message');
|
console.log('Preparing Scheduled message');
|
||||||
console.log(`Request body: ${reqBody}`);
|
|
||||||
|
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${API_BASE_URL}/api/v1/schedule/message/status/update`,
|
`${API_BASE_URL}/api/v1/schedule/message/status/update`,
|
||||||
@@ -44,19 +42,3 @@ export const scheduleApi = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
* "scheduled": "{{scheduling_time}}",
|
|
||||||
"status": "{{status_pending}}",
|
|
||||||
"user_id": "{{user_id}}"
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* {
|
|
||||||
"scheduled_message_id": "{{scheduled_message_id}}",
|
|
||||||
"status": "{{status_ready}}"
|
|
||||||
}
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ export const scheduleEventApi = {
|
|||||||
scheduleMessageEvent: async (reqBody, authBearerToken) => {
|
scheduleMessageEvent: async (reqBody, authBearerToken) => {
|
||||||
console.log('Scheduling message Event');
|
console.log('Scheduling message Event');
|
||||||
|
|
||||||
console.log(`Request body: ${reqBody}`);
|
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${API_BASE_URL}/api/v1/schedule/message/event`,
|
`${API_BASE_URL}/api/v1/schedule/message/event`,
|
||||||
{
|
{
|
||||||
@@ -24,13 +23,3 @@ export const scheduleEventApi = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
"contact_id": "{{contact_id}}",
|
|
||||||
"message_id": "{{message_id}}",
|
|
||||||
"scheduled_message_id": "{{scheduled_message_id}}"
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|||||||
@@ -89,9 +89,10 @@ function ConfirmationStep({
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{ /* Scheduled time Section */}
|
{/* Scheduled time Section */}
|
||||||
<div>
|
<div>
|
||||||
Scheduled time: {scheduledTime ? scheduledTime.toISOString() : 'No schedule date'}
|
Scheduled time:{' '}
|
||||||
|
{scheduledTime ? scheduledTime.toISOString() : 'No schedule date'}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* Summary Section */}
|
{/* Summary Section */}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
|
|
||||||
function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
function FutureTimeForm({ scheduledTime, setScheduledTime }) {
|
||||||
const [selectedTime, setSelectedTime] = useState(new Date());
|
const [selectedTime, setSelectedTime] = useState(new Date());
|
||||||
const [error, setError] = useState('');
|
const [error, setError] = useState('');
|
||||||
const [success, setSuccess] = useState('');
|
const [success, setSuccess] = useState('');
|
||||||
@@ -8,9 +8,6 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
|||||||
const handleTimeChange = (e) => {
|
const handleTimeChange = (e) => {
|
||||||
setSelectedTime(e.target.value);
|
setSelectedTime(e.target.value);
|
||||||
setScheduledTime(new Date(e.target.value));
|
setScheduledTime(new Date(e.target.value));
|
||||||
// Clear errors when user starts typing again
|
|
||||||
console.log(`Scheduled Time: ${scheduledTime}`)
|
|
||||||
console.log(`Selected Time: ${selectedTime}`)
|
|
||||||
setError('');
|
setError('');
|
||||||
setSuccess('');
|
setSuccess('');
|
||||||
};
|
};
|
||||||
@@ -23,8 +20,6 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`Time: ${selectedTime}`)
|
|
||||||
|
|
||||||
const now = new Date();
|
const now = new Date();
|
||||||
const inputDate = new Date(selectedTime);
|
const inputDate = new Date(selectedTime);
|
||||||
|
|
||||||
@@ -39,17 +34,20 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
|||||||
setError('');
|
setError('');
|
||||||
setSuccess('Time validated successfully!');
|
setSuccess('Time validated successfully!');
|
||||||
setScheduledTime(inputDate);
|
setScheduledTime(inputDate);
|
||||||
console.log('Form submitted with time (selected):', selectedTime);
|
|
||||||
console.log('Form submitted with time (scheduled):', scheduledTime);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div style={{ maxWidth: '400px', margin: '2rem auto', fontFamily: 'Arial' }}>
|
<div
|
||||||
|
style={{ maxWidth: '400px', margin: '2rem auto', fontFamily: 'Arial' }}
|
||||||
|
>
|
||||||
<h2>Schedule Event</h2>
|
<h2>Schedule Event</h2>
|
||||||
<form onSubmit={validateAndSubmit}>
|
<form onSubmit={validateAndSubmit}>
|
||||||
<div style={{ marginBottom: '1rem' }}>
|
<div style={{ marginBottom: '1rem' }}>
|
||||||
<label htmlFor="future-time" style={{ display: 'block', marginBottom: '0.5rem' }}>
|
<label
|
||||||
|
htmlFor="future-time"
|
||||||
|
style={{ display: 'block', marginBottom: '0.5rem' }}
|
||||||
|
>
|
||||||
Select Date and Time:
|
Select Date and Time:
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
@@ -60,13 +58,15 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
|||||||
style={{
|
style={{
|
||||||
padding: '8px',
|
padding: '8px',
|
||||||
width: '100%',
|
width: '100%',
|
||||||
borderColor: error ? 'red' : '#ccc'
|
borderColor: error ? 'red' : '#ccc',
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{error && <p style={{ color: 'red', fontSize: '0.9rem' }}>{error}</p>}
|
{error && <p style={{ color: 'red', fontSize: '0.9rem' }}>{error}</p>}
|
||||||
{success && <p style={{ color: 'green', fontSize: '0.9rem' }}>{success}</p>}
|
{success && (
|
||||||
|
<p style={{ color: 'green', fontSize: '0.9rem' }}>{success}</p>
|
||||||
|
)}
|
||||||
|
|
||||||
<button
|
<button
|
||||||
type="submit"
|
type="submit"
|
||||||
@@ -76,7 +76,7 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
|||||||
color: 'white',
|
color: 'white',
|
||||||
border: 'none',
|
border: 'none',
|
||||||
borderRadius: '4px',
|
borderRadius: '4px',
|
||||||
cursor: 'pointer'
|
cursor: 'pointer',
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
Submit
|
Submit
|
||||||
@@ -84,6 +84,6 @@ function FutureTimeForm({scheduledTime, setScheduledTime}) {
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
}
|
||||||
|
|
||||||
export default FutureTimeForm;
|
export default FutureTimeForm;
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ function MessageForm({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleIsScheduledCheckbox = (event) => {
|
const handleIsScheduledCheckbox = (event) => {
|
||||||
console.log('Doing something to the checkbox');
|
|
||||||
setIsScheduledChecked(event.target.checked);
|
setIsScheduledChecked(event.target.checked);
|
||||||
onToggleScheduled(event.target.checked);
|
onToggleScheduled(event.target.checked);
|
||||||
};
|
};
|
||||||
@@ -50,10 +49,8 @@ function MessageForm({
|
|||||||
const createdMessage = response.data[0];
|
const createdMessage = response.data[0];
|
||||||
setCreatedMessage(createdMessage);
|
setCreatedMessage(createdMessage);
|
||||||
if (onMessageCreated) {
|
if (onMessageCreated) {
|
||||||
console.log('Setting createdMessage');
|
|
||||||
onMessageCreated(createdMessage);
|
onMessageCreated(createdMessage);
|
||||||
}
|
}
|
||||||
console.log('Created message: ', createdMessage);
|
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
|
|||||||
@@ -31,12 +31,11 @@ function SendMessageWizardModal({ isOpen, onClose, onComplete }) {
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
case 'schedule':
|
case 'schedule':
|
||||||
// TODO: Add form for schedule step
|
|
||||||
return (
|
return (
|
||||||
<FutureTimeForm
|
<FutureTimeForm
|
||||||
scheduledTime={wizard.scheduledTime}
|
scheduledTime={wizard.scheduledTime}
|
||||||
setScheduledTime={wizard.setScheduledTime}
|
setScheduledTime={wizard.setScheduledTime}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
case 'confirm':
|
case 'confirm':
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -30,27 +30,27 @@ const useSendMessageWizard = () => {
|
|||||||
case 'message':
|
case 'message':
|
||||||
return state.message.trim().length > 0;
|
return state.message.trim().length > 0;
|
||||||
case 'schedule':
|
case 'schedule':
|
||||||
// TODO: Handle this
|
|
||||||
// return state.scheduledTime != null;
|
|
||||||
console.log('Checking to see if schedule can go to the next step');
|
console.log('Checking to see if schedule can go to the next step');
|
||||||
console.log(state.scheduledTime);
|
|
||||||
console.log(state.message);
|
|
||||||
// const result = state.scheduledTime instanceof Date && isNaN(state.scheduledTime.getTime());
|
|
||||||
if (state.scheduledTime == null) {
|
if (state.scheduledTime == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
console.log('Scheduled time is not null');
|
console.log('Scheduled time is not null');
|
||||||
// const result = isNaN(state.scheduledTime.getTime());
|
const result =
|
||||||
const result = state.scheduledTime instanceof Date && isNaN(state.scheduledTime.getTime());
|
state.scheduledTime instanceof Date &&
|
||||||
console.log(result);
|
isNaN(state.scheduledTime.getTime());
|
||||||
console.log(state.scheduledTime);
|
|
||||||
return !result;
|
return !result;
|
||||||
case 'confirm':
|
case 'confirm':
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}, [state.step, state.selectedContacts.length, state.message, state.scheduledTime]);
|
}, [
|
||||||
|
state.step,
|
||||||
|
state.selectedContacts.length,
|
||||||
|
state.message,
|
||||||
|
state.scheduledTime,
|
||||||
|
]);
|
||||||
|
|
||||||
const canGoBack = state.step !== 'select';
|
const canGoBack = state.step !== 'select';
|
||||||
|
|
||||||
@@ -89,17 +89,6 @@ const useSendMessageWizard = () => {
|
|||||||
const nextStep = () => {
|
const nextStep = () => {
|
||||||
if (!canProceedToNextStep()) return;
|
if (!canProceedToNextStep()) return;
|
||||||
|
|
||||||
console.log('Going to next step');
|
|
||||||
console.log(state.isScheduled);
|
|
||||||
|
|
||||||
if (state.isScheduled) {
|
|
||||||
console.log('Scheduled Checked');
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(`Step: ${state.step}`);
|
|
||||||
|
|
||||||
// TODO: Handle navigation for schedule form
|
|
||||||
|
|
||||||
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
|
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
|
||||||
const currentIndex = stepOrder.indexOf(state.step);
|
const currentIndex = stepOrder.indexOf(state.step);
|
||||||
if (currentIndex < stepOrder.length - 1) {
|
if (currentIndex < stepOrder.length - 1) {
|
||||||
@@ -128,10 +117,8 @@ const useSendMessageWizard = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const prevStep = () => {
|
const prevStep = () => {
|
||||||
// TODO: Handle navigation for schedule form
|
|
||||||
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
|
const stepOrder = ['select', 'message', 'schedule', 'confirm', 'result'];
|
||||||
const currentIndex = stepOrder.indexOf(state.step);
|
const currentIndex = stepOrder.indexOf(state.step);
|
||||||
console.log(`Stepping back: ${state.step} isSheduled: ${state.isScheduled}`);
|
|
||||||
|
|
||||||
if (currentIndex > 0) {
|
if (currentIndex > 0) {
|
||||||
if (state.step === 'confirm') {
|
if (state.step === 'confirm') {
|
||||||
@@ -172,19 +159,18 @@ const useSendMessageWizard = () => {
|
|||||||
try {
|
try {
|
||||||
if (state.scheduledTime != null) {
|
if (state.scheduledTime != null) {
|
||||||
console.log('Going to schedule message');
|
console.log('Going to schedule message');
|
||||||
// TODO: Put code here to schedule message
|
|
||||||
const schMsgReq = {
|
const schMsgReq = {
|
||||||
scheduled: state.scheduledTime.toISOString(),
|
scheduled: state.scheduledTime.toISOString(),
|
||||||
status: 'PENDING',
|
status: 'PENDING',
|
||||||
user_id: tokenService.getUserId()
|
user_id: tokenService.getUserId(),
|
||||||
};
|
};
|
||||||
|
|
||||||
console.log(schMsgReq);
|
|
||||||
|
|
||||||
const token = tokenService.bearerToken();
|
const token = tokenService.bearerToken();
|
||||||
|
const schMsgResponse = await scheduleApi.scheduleMessage(
|
||||||
const schMsgResponse = await scheduleApi.scheduleMessage(schMsgReq, token);
|
schMsgReq,
|
||||||
console.log(schMsgResponse);
|
token
|
||||||
|
);
|
||||||
|
|
||||||
if (schMsgResponse) {
|
if (schMsgResponse) {
|
||||||
console.log('Message scheduled');
|
console.log('Message scheduled');
|
||||||
@@ -193,18 +179,18 @@ const useSendMessageWizard = () => {
|
|||||||
for (let contact of state.selectedContacts) {
|
for (let contact of state.selectedContacts) {
|
||||||
let schMsgEvtReq = {
|
let schMsgEvtReq = {
|
||||||
contact_id: contact,
|
contact_id: contact,
|
||||||
message_id:state.createdMessage.id,
|
message_id: state.createdMessage.id,
|
||||||
scheduled_message_id: scheduledMessageId,
|
scheduled_message_id: scheduledMessageId,
|
||||||
};
|
};
|
||||||
console.log(schMsgEvtReq);
|
|
||||||
const schMsgEvtResponse = await scheduleEventApi.scheduleMessageEvent(schMsgEvtReq, token);
|
const schMsgEvtResponse =
|
||||||
console.log(schMsgEvtResponse);
|
await scheduleEventApi.scheduleMessageEvent(schMsgEvtReq, token);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('Updating message status');
|
console.log('Updating message status');
|
||||||
const req = {
|
const req = {
|
||||||
scheduled_message_id: scheduledMessageId,
|
scheduled_message_id: scheduledMessageId,
|
||||||
status: 'READY'
|
status: 'READY',
|
||||||
};
|
};
|
||||||
console.log(req);
|
console.log(req);
|
||||||
const response = await scheduleApi.prepareMessage(req, token);
|
const response = await scheduleApi.prepareMessage(req, token);
|
||||||
@@ -254,7 +240,7 @@ const useSendMessageWizard = () => {
|
|||||||
submissionError: error.message || 'Failed to send messages',
|
submissionError: error.message || 'Failed to send messages',
|
||||||
isSubmitting: false,
|
isSubmitting: false,
|
||||||
isScheduled: false,
|
isScheduled: false,
|
||||||
scheduledTime: null,
|
scheduledTime: null,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user