({
token,
externalThreadId,
externalChannelId,
body,
author,
title,
setThreadExternalId,
setMessageExternalId,
}: {
setThreadExternalId: (externalId: string) => Promise<void>;
setMessageExternalId: (externalId: string) => Promise<void>;
token: string;
externalThreadId: string;
externalChannelId: string;
body: string;
author?: string;
title: string;
})
| 178 | } |
| 179 | |
| 180 | async function processNewMessage({ |
| 181 | token, |
| 182 | externalThreadId, |
| 183 | externalChannelId, |
| 184 | body, |
| 185 | author, |
| 186 | title, |
| 187 | setThreadExternalId, |
| 188 | setMessageExternalId, |
| 189 | }: { |
| 190 | setThreadExternalId: (externalId: string) => Promise<void>; |
| 191 | setMessageExternalId: (externalId: string) => Promise<void>; |
| 192 | token: string; |
| 193 | externalThreadId: string; |
| 194 | externalChannelId: string; |
| 195 | body: string; |
| 196 | author?: string; |
| 197 | title: string; |
| 198 | }) { |
| 199 | const client = await getClient(token); |
| 200 | |
| 201 | const thread: any = await client |
| 202 | .post(Routes.threads(externalChannelId, externalThreadId), { |
| 203 | body: { name: title, nonce }, |
| 204 | }) |
| 205 | .catch(() => null); |
| 206 | |
| 207 | if (thread) { |
| 208 | await setThreadExternalId(thread.id); |
| 209 | } |
| 210 | |
| 211 | const message: any = await client.post( |
| 212 | Routes.channelMessages(thread ? thread.id : externalThreadId), |
| 213 | { |
| 214 | body: { content: `${author}: ${body}`, nonce }, |
| 215 | } |
| 216 | ); |
| 217 | await setMessageExternalId(message.id); |
| 218 | return; |
| 219 | } |
no test coverage detected