function getStatusCodeFromMqttConnectCode()

in sdk/web-pubsub/web-pubsub-express/src/cloudEventsDispatcher.ts [167:216]


function getStatusCodeFromMqttConnectCode(
  mqttConnectCode: MqttV311ConnectReturnCode | MqttV500ConnectReasonCode,
): number {
  if (mqttConnectCode < 0x80) {
    switch (mqttConnectCode) {
      case MqttV311ConnectReturnCode.UnacceptableProtocolVersion:
      case MqttV311ConnectReturnCode.IdentifierRejected:
        return 400; // BadRequest
      case MqttV311ConnectReturnCode.ServerUnavailable:
        return 503; // ServiceUnavailable
      case MqttV311ConnectReturnCode.BadUsernameOrPassword:
      case MqttV311ConnectReturnCode.NotAuthorized:
        return 401; // Unauthorized
      default:
        logger.warning(`Invalid MQTT connect return code: ${mqttConnectCode}.`);
        return 500; // InternalServerError
    }
  } else {
    switch (mqttConnectCode) {
      case MqttV500ConnectReasonCode.NotAuthorized:
      case MqttV500ConnectReasonCode.BadUserNameOrPassword:
        return 401; // Unauthorized
      case MqttV500ConnectReasonCode.ClientIdentifierNotValid:
      case MqttV500ConnectReasonCode.MalformedPacket:
      case MqttV500ConnectReasonCode.UnsupportedProtocolVersion:
      case MqttV500ConnectReasonCode.BadAuthenticationMethod:
      case MqttV500ConnectReasonCode.TopicNameInvalid:
      case MqttV500ConnectReasonCode.PayloadFormatInvalid:
      case MqttV500ConnectReasonCode.ImplementationSpecificError:
      case MqttV500ConnectReasonCode.PacketTooLarge:
      case MqttV500ConnectReasonCode.RetainNotSupported:
      case MqttV500ConnectReasonCode.QosNotSupported:
        return 400; // BadRequest
      case MqttV500ConnectReasonCode.QuotaExceeded:
      case MqttV500ConnectReasonCode.ConnectionRateExceeded:
        return 429; // TooManyRequests
      case MqttV500ConnectReasonCode.Banned:
        return 403; // Forbidden
      case MqttV500ConnectReasonCode.UseAnotherServer:
      case MqttV500ConnectReasonCode.ServerMoved:
      case MqttV500ConnectReasonCode.ServerUnavailable:
      case MqttV500ConnectReasonCode.ServerBusy:
      case MqttV500ConnectReasonCode.UnspecifiedError:
        return 500; // InternalServerError
      default:
        logger.warning(`Invalid MQTT connect return code: ${mqttConnectCode}.`);
        return 500; // InternalServerError
    }
  }
}