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
}
}
}