1
0
mirror of https://github.com/mainflux/mainflux.git synced 2025-04-26 13:48:53 +08:00
Ian Ngethe Muchiri b4b625ddb1
NOISSUE- update health method in SDK (#1881)
* update health function in sdk

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

* update bootstrap name

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

* update health_test

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

* update sdk.go comment

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

* update cli/README

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

* update health_test

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

* remove duplicate import

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>

---------

Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com>
2023-08-08 14:42:32 +02:00

66 lines
1.5 KiB
Go

// Copyright (c) Mainflux
// SPDX-License-Identifier: Apache-2.0
package sdk
import (
"encoding/json"
"fmt"
"net/http"
"github.com/mainflux/mainflux/pkg/errors"
)
// HealthInfo contains version endpoint response.
type HealthInfo struct {
// Status contains service status.
Status string `json:"status"`
// Version contains current service version.
Version string `json:"version"`
// Commit represents the git hash commit.
Commit string `json:"commit"`
// Description contains service description.
Description string `json:"description"`
// BuildTime contains service build time.
BuildTime string `json:"build_time"`
}
func (sdk mfSDK) Health(service string) (HealthInfo, errors.SDKError) {
var url string
switch service {
case "things":
url = fmt.Sprintf("%s/health", sdk.thingsURL)
case "users":
url = fmt.Sprintf("%s/health", sdk.usersURL)
case "bootstrap":
url = fmt.Sprintf("%s/health", sdk.bootstrapURL)
case "certs":
url = fmt.Sprintf("%s/health", sdk.certsURL)
case "reader":
url = fmt.Sprintf("%s/health", sdk.readerURL)
case "http-adapter":
url = fmt.Sprintf("%s/health", sdk.httpAdapterURL)
}
resp, err := sdk.client.Get(url)
if err != nil {
return HealthInfo{}, errors.NewSDKError(err)
}
defer resp.Body.Close()
if err := errors.CheckError(resp, http.StatusOK); err != nil {
return HealthInfo{}, err
}
var h HealthInfo
if err := json.NewDecoder(resp.Body).Decode(&h); err != nil {
return HealthInfo{}, errors.NewSDKError(err)
}
return h, nil
}