github.com/status-im/status-go@v1.1.0/wakuv2/nwaku.go (about) 1 package wakuv2 2 3 import ( 4 "encoding/json" 5 "fmt" 6 "io" 7 "net/http" 8 "os" 9 "strconv" 10 ) 11 12 type NwakuInfo struct { 13 ListenAddresses []string `json:"listenAddresses"` 14 EnrUri string `json:"enrUri"` 15 } 16 17 func GetNwakuInfo(host *string, port *int) (NwakuInfo, error) { 18 nwakuRestPort := 8645 19 if port != nil { 20 nwakuRestPort = *port 21 } 22 envNwakuRestPort := os.Getenv("NWAKU_REST_PORT") 23 if envNwakuRestPort != "" { 24 v, err := strconv.Atoi(envNwakuRestPort) 25 if err != nil { 26 return NwakuInfo{}, err 27 } 28 nwakuRestPort = v 29 } 30 31 nwakuRestHost := "localhost" 32 if host != nil { 33 nwakuRestHost = *host 34 } 35 envNwakuRestHost := os.Getenv("NWAKU_REST_HOST") 36 if envNwakuRestHost != "" { 37 nwakuRestHost = envNwakuRestHost 38 } 39 40 resp, err := http.Get(fmt.Sprintf("http://%s:%d/debug/v1/info", nwakuRestHost, nwakuRestPort)) 41 if err != nil { 42 return NwakuInfo{}, err 43 } 44 defer resp.Body.Close() 45 46 body, err := io.ReadAll(resp.Body) 47 if err != nil { 48 return NwakuInfo{}, err 49 } 50 51 var data NwakuInfo 52 err = json.Unmarshal(body, &data) 53 if err != nil { 54 return NwakuInfo{}, err 55 } 56 57 return data, nil 58 }