public messageStatus()

in libs/accounts/recovery-phone/src/lib/sms.manager.ts [190:237]


  public messageStatus(messageStatus: TwilioMessageStatus) {
    // Keep tabs on the delivery status
    this.metrics.increment(
      `recovery-phone.message.status.${messageStatus.MessageStatus}`
    );

    // Track specific error codes rates
    if (messageStatus.ErrorCode) {
      this.metrics.increment(
        `recovery-phone.message.status.error.${messageStatus.ErrorCode}`
      );
    }

    // Only write log entries for certain statuses.
    switch (messageStatus.MessageStatus) {
      case 'queued':
      case 'sending':
      case 'sent':
      case 'receiving':
      case 'received':
      case 'accepted':
      case 'scheduled':
      case 'read':
      case 'partially_delivered':
      case 'canceled':
        // no-op
        break;

      case 'failed':
      case 'undelivered':
      case 'delivered':
        const opts: any = {
          From: messageStatus.From,
          MessageSid: messageStatus.MessageSid,
        };
        if (messageStatus.ErrorCode) {
          opts.ErrorCode = messageStatus.ErrorCode;
        }
        if (messageStatus.RawDlrDoneDate) {
          opts.RawDlrDoneDate = messageStatus.RawDlrDoneDate;
        }
        this.log.log(
          `recovery-phone.message.status.${messageStatus.MessageStatus}`,
          opts
        );
        break;
    }
  }