@ -70,14 +70,21 @@ export default async function fritzboxProxyHandler(req, res) {
const requestLinkProperties = [ "maxDown" , "maxUp" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestLinkProperties = [ "maxDown" , "maxUp" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestAddonInfos = [ "down" , "up" , "received" , "sent" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestAddonInfos = [ "down" , "up" , "received" , "sent" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestExternalIPAddress = [ "externalIPAddress" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestExternalIPAddress = [ "externalIPAddress" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestExternalIPv6Address = [ "externalIPv6Address" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
const requestExternalIPv6Prefix = [ "externalIPv6Prefix" ] . some ( ( field ) => serviceWidget . fields . includes ( field ) ) ;
await Promise . all ( [
await Promise . all ( [
// as per http://fritz.box:49000/igddesc.xml specifications (fritz.box is a hostname of your router)
requestStatusInfo ? requestEndpoint ( apiBaseUrl , "WANIPConnection" , "GetStatusInfo" ) : null ,
requestStatusInfo ? requestEndpoint ( apiBaseUrl , "WANIPConnection" , "GetStatusInfo" ) : null ,
requestLinkProperties ? requestEndpoint ( apiBaseUrl , "WANCommonInterfaceConfig" , "GetCommonLinkProperties" ) : null ,
requestLinkProperties ? requestEndpoint ( apiBaseUrl , "WANCommonInterfaceConfig" , "GetCommonLinkProperties" ) : null ,
requestAddonInfos ? requestEndpoint ( apiBaseUrl , "WANCommonInterfaceConfig" , "GetAddonInfos" ) : null ,
requestAddonInfos ? requestEndpoint ( apiBaseUrl , "WANCommonInterfaceConfig" , "GetAddonInfos" ) : null ,
requestExternalIPAddress ? requestEndpoint ( apiBaseUrl , "WANIPConnection" , "GetExternalIPAddress" ) : null ,
requestExternalIPAddress ? requestEndpoint ( apiBaseUrl , "WANIPConnection" , "GetExternalIPAddress" ) : null ,
requestExternalIPv6Address
? requestEndpoint ( apiBaseUrl , "WANIPConnection" , "X_AVM_DE_GetExternalIPv6Address" )
: null ,
requestExternalIPv6Prefix ? requestEndpoint ( apiBaseUrl , "WANIPConnection" , "X_AVM_DE_GetIPv6Prefix" ) : null ,
] )
] )
. then ( ( [ statusInfo , linkProperties , addonInfos , externalIPAddress ] ) => {
. then ( ( [ statusInfo , linkProperties , addonInfos , externalIPAddress , externalIPv6Address , externalIPv6Prefix ]) => {
res . status ( 200 ) . json ( {
res . status ( 200 ) . json ( {
connectionStatus : statusInfo ? . NewConnectionStatus || "Unconfigured" ,
connectionStatus : statusInfo ? . NewConnectionStatus || "Unconfigured" ,
uptime : statusInfo ? . NewUptime || 0 ,
uptime : statusInfo ? . NewUptime || 0 ,
@ -88,6 +95,8 @@ export default async function fritzboxProxyHandler(req, res) {
received : addonInfos ? . NewX _AVM _DE _TotalBytesReceived64 || 0 ,
received : addonInfos ? . NewX _AVM _DE _TotalBytesReceived64 || 0 ,
sent : addonInfos ? . NewX _AVM _DE _TotalBytesSent64 || 0 ,
sent : addonInfos ? . NewX _AVM _DE _TotalBytesSent64 || 0 ,
externalIPAddress : externalIPAddress ? . NewExternalIPAddress || null ,
externalIPAddress : externalIPAddress ? . NewExternalIPAddress || null ,
externalIPv6Address : externalIPv6Address ? . NewExternalIPv6Address || null ,
externalIPv6Prefix : externalIPv6Prefix ? . NewIPv6Prefix || null ,
} ) ;
} ) ;
} )
} )
. catch ( ( error ) => {
. catch ( ( error ) => {