| 49 | } |
| 50 | |
| 51 | async function postReply({ |
| 52 | token, |
| 53 | externalChannelId, |
| 54 | externalThreadId, |
| 55 | body, |
| 56 | user, |
| 57 | logger, |
| 58 | }: { |
| 59 | token: string; |
| 60 | externalChannelId: string; |
| 61 | externalThreadId: string; |
| 62 | body: string; |
| 63 | user?: AuthorUser; |
| 64 | logger: Logger; |
| 65 | }) { |
| 66 | try { |
| 67 | const url = 'https://slack.com/api/chat.postMessage'; |
| 68 | const res = await request |
| 69 | .post(url) |
| 70 | .send({ |
| 71 | channel: externalChannelId, |
| 72 | thread_ts: externalThreadId, |
| 73 | text: body, |
| 74 | ...(!!user && { ...user }), |
| 75 | }) |
| 76 | .set('Authorization', 'Bearer ' + token); |
| 77 | // res.body, res.headers, res.status |
| 78 | return res.body; |
| 79 | } catch (err: any) { |
| 80 | // err.message, err.response |
| 81 | logger.error({ response: err.response, message: err.message }); |
| 82 | throw err; |
| 83 | } |
| 84 | } |
| 85 | |
| 86 | export async function slackChatSync({ |
| 87 | channel, |