Skip to content

Commit f17a2b3

Browse files
committed
Fetch subscribed newsletters (whatsapp channels) after connect
1 parent 5c5b440 commit f17a2b3

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/api.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ export default class WhatsAppAPI implements PlatformAPI {
275275
if (this.connState.connection === 'close') {
276276
throw this.connState.lastDisconnect?.error || new ConnectionError('failed to open')
277277
}
278+
this.getSubscribedNewsletters()
278279
} catch (error) {
279280
this.logger.info({ msSinceConnect, trace: error.stack }, 'connect failed')
280281

@@ -1153,4 +1154,29 @@ export default class WhatsAppAPI implements PlatformAPI {
11531154
await repo.remove(expiredMessages)
11541155
} while (expiredMessages.length > 0)
11551156
}
1157+
1158+
private getSubscribedNewsletters = async () => {
1159+
const subscribedNewsletters = await this.client?.getSubscribedNewsletters()
1160+
if (subscribedNewsletters) {
1161+
await Promise.all(subscribedNewsletters.map(async newsletter => {
1162+
const thread = new DBThread()
1163+
thread.original = {
1164+
chat: {
1165+
id: newsletter.id,
1166+
name: newsletter.threadMetadata.name.text,
1167+
createdAt: newsletter.threadMetadata.creationTime,
1168+
},
1169+
metadata: undefined,
1170+
}
1171+
thread.shouldFireEvent = false
1172+
thread.mapFromOriginal(this)
1173+
// eslint-disable-next-line no-debugger
1174+
debugger
1175+
await this.db.transaction(async db => {
1176+
await db.getRepository(DBThread).save(thread)
1177+
})
1178+
}))
1179+
}
1180+
return subscribedNewsletters
1181+
}
11561182
}

0 commit comments

Comments
 (0)