Got the message scheduling working
This commit is contained in:
+5
-15
@@ -1,15 +1,10 @@
|
||||
import { API_BASE_URL } from '../constants/api';
|
||||
|
||||
export const scheduleApi = {
|
||||
scheduleMessage: async (s, authBearerToken) => {
|
||||
scheduleMessage: async (reqBody, authBearerToken) => {
|
||||
console.log('Scheduling message');
|
||||
const reqBody = {
|
||||
scheduled: s.scheduedTime.toISOString(),
|
||||
status: s.status,
|
||||
user_id: s.userId,
|
||||
};
|
||||
|
||||
console.log(`Request body: ${reqBody}`);
|
||||
|
||||
const response = await fetch(`${API_BASE_URL}/api/v1/schedule/message`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
@@ -26,19 +21,14 @@ export const scheduleApi = {
|
||||
}
|
||||
},
|
||||
|
||||
prepareMessage: async (req, authBearerToken) => {
|
||||
prepareMessage: async (reqBody, authBearerToken) => {
|
||||
console.log('Preparing Scheduled message');
|
||||
const reqBody = {
|
||||
scheduled_message_id: req.scheduledMessageId,
|
||||
status: req.status,
|
||||
};
|
||||
|
||||
console.log(`Request body: ${reqBody}`);
|
||||
|
||||
const response = await fetch(
|
||||
`${API_BASE_URL}/api/v1/schedule/status/message/update`,
|
||||
`${API_BASE_URL}/api/v1/schedule/message/status/update`,
|
||||
{
|
||||
method: 'POST',
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: authBearerToken,
|
||||
|
||||
@@ -1,13 +1,8 @@
|
||||
import { API_BASE_URL } from '../constants/api';
|
||||
|
||||
export const scheduleEventApi = {
|
||||
scheduleMessageEvent: async (s, authBearerToken) => {
|
||||
scheduleMessageEvent: async (reqBody, authBearerToken) => {
|
||||
console.log('Scheduling message Event');
|
||||
const reqBody = {
|
||||
contact_id: s.contactId,
|
||||
message_id: s.messageId,
|
||||
scheduled_message_id: s.scheduledMessageId,
|
||||
};
|
||||
|
||||
console.log(`Request body: ${reqBody}`);
|
||||
const response = await fetch(
|
||||
|
||||
@@ -5,6 +5,8 @@ import {
|
||||
sendMessageApi,
|
||||
SendInstantMessageRequest,
|
||||
} from '../../api/sendMessageApi';
|
||||
import { scheduleApi } from '../../api/scheduleApi.js';
|
||||
import { scheduleEventApi } from '../../api/scheduleEventApi.js';
|
||||
|
||||
const useSendMessageWizard = () => {
|
||||
const [state, setState] = useState({
|
||||
@@ -168,27 +170,78 @@ const useSendMessageWizard = () => {
|
||||
}));
|
||||
|
||||
try {
|
||||
console.log('Sending message');
|
||||
let reqBod = new SendInstantMessageRequest();
|
||||
reqBod.user_id = tokenService.getUserId();
|
||||
reqBod.message_id = state.createdMessage.id;
|
||||
state.selectedContacts.forEach((selectedContact) => {
|
||||
reqBod.contact_ids.push(selectedContact);
|
||||
});
|
||||
const response = await sendMessageApi.sendInstantMessage(
|
||||
reqBod,
|
||||
tokenService.bearerToken()
|
||||
);
|
||||
if (state.scheduledTime != null) {
|
||||
console.log('Going to schedule message');
|
||||
// TODO: Put code here to schedule message
|
||||
const schMsgReq = {
|
||||
scheduled: state.scheduledTime.toISOString(),
|
||||
status: 'PENDING',
|
||||
user_id: tokenService.getUserId()
|
||||
};
|
||||
|
||||
if (response) {
|
||||
// Success - move to result step
|
||||
setState((prev) => ({
|
||||
...prev,
|
||||
step: 'result',
|
||||
isSubmitting: false,
|
||||
isScheduled: false,
|
||||
scheduledTime: null,
|
||||
}));
|
||||
console.log(schMsgReq);
|
||||
|
||||
const token = tokenService.bearerToken();
|
||||
|
||||
const schMsgResponse = await scheduleApi.scheduleMessage(schMsgReq, token);
|
||||
console.log(schMsgResponse);
|
||||
|
||||
if (schMsgResponse) {
|
||||
console.log('Message scheduled');
|
||||
|
||||
const scheduledMessageId = schMsgResponse.data[0].id;
|
||||
for (let contact of state.selectedContacts) {
|
||||
let schMsgEvtReq = {
|
||||
contact_id: contact,
|
||||
message_id:state.createdMessage.id,
|
||||
scheduled_message_id: scheduledMessageId,
|
||||
};
|
||||
console.log(schMsgEvtReq);
|
||||
const schMsgEvtResponse = await scheduleEventApi.scheduleMessageEvent(schMsgEvtReq, token);
|
||||
console.log(schMsgEvtResponse);
|
||||
}
|
||||
|
||||
console.log('Updating message status');
|
||||
const req = {
|
||||
scheduled_message_id: scheduledMessageId,
|
||||
status: 'READY'
|
||||
};
|
||||
console.log(req);
|
||||
const response = await scheduleApi.prepareMessage(req, token);
|
||||
if (response) {
|
||||
console.log('Message scheduled');
|
||||
setState((prev) => ({
|
||||
...prev,
|
||||
step: 'result',
|
||||
isSubmitting: false,
|
||||
isScheduled: false,
|
||||
scheduledTime: null,
|
||||
}));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log('Sending message');
|
||||
let reqBod = new SendInstantMessageRequest();
|
||||
reqBod.user_id = tokenService.getUserId();
|
||||
reqBod.message_id = state.createdMessage.id;
|
||||
state.selectedContacts.forEach((selectedContact) => {
|
||||
reqBod.contact_ids.push(selectedContact);
|
||||
});
|
||||
const response = await sendMessageApi.sendInstantMessage(
|
||||
reqBod,
|
||||
tokenService.bearerToken()
|
||||
);
|
||||
|
||||
if (response) {
|
||||
// Success - move to result step
|
||||
setState((prev) => ({
|
||||
...prev,
|
||||
step: 'result',
|
||||
isSubmitting: false,
|
||||
isScheduled: false,
|
||||
scheduledTime: null,
|
||||
}));
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
if (error.name === 'AbortError') {
|
||||
|
||||
Reference in New Issue
Block a user