Adds phone number metadata before insert (#656)

This commit is contained in:
Chris Anderson 2025-04-21 11:30:54 -05:00 committed by GitHub
parent c528c06d9d
commit b9c26e3204
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 16 additions and 2 deletions

View file

@ -5,7 +5,7 @@ import { updateSendState } from '../../campaigns/CampaignService'
import { failSend, finalizeSend, loadSendJob, messageLock, prepareSend } from '../MessageTriggerService'
import { loadTextChannel } from '.'
import App from '../../app'
import { UnsubscribeTextError } from './TextError'
import { UndeliverableTextError, UnsubscribeTextError } from './TextError'
import { releaseLock } from '../../core/Lock'
export default class TextJob extends Job {
@ -45,7 +45,7 @@ export default class TextJob extends Job {
const result = await channel.send(template, data)
await finalizeSend(data, result)
} catch (error: any) {
await failSend(data, error, (error: any) => !(error instanceof UnsubscribeTextError))
await failSend(data, error, (error: any) => !(error instanceof UnsubscribeTextError || error instanceof UndeliverableTextError))
} finally {
await releaseLock(messageLock(campaign, user))
}

View file

@ -86,6 +86,20 @@ export class User extends Model {
return this.data.last_name ?? this.data.lastName ?? this.data.surname
}
static formatJson(json: Record<string, any>): Record<string, unknown> {
if (json.phone) {
const parsedNumber = parsePhoneNumber(json.phone)
if (parsedNumber) {
json.data = {
...json.data,
phone_country: parsedNumber.country,
phone_is_valid: parsedNumber.isValid(),
}
}
}
return super.formatJson(json)
}
toJSON() {
const json = super.toJSON()