2022-12-08 13:05:19 -03:00

55 lines
1.3 KiB
Go

// Copyright (c) 2022 Gitpod GmbH. All rights reserved.
// Licensed under the GNU Affero General Public License (AGPL).
// See License.AGPL.txt in the project root for license information.
package server
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
"github.com/gitpod-io/gitpod/installation-telemetry/pkg/common"
)
type InstallationAdminSettings struct {
SendTelemetry bool `json:"sendTelemetry"`
SendCustomerID bool `json:"sendCustomerID"`
}
type Data struct {
InstallationAdmin InstallationAdmin `json:"installationAdmin"`
TotalUsers int64 `json:"totalUsers"`
TotalWorkspaces int64 `json:"totalWorkspaces"`
TotalInstances int64 `json:"totalInstances"`
LicenseType string `json:"licenseType"`
CustomerID string `json:"customerID,omitempty"`
}
type InstallationAdmin struct {
ID string `json:"id"`
Settings InstallationAdminSettings `json:"settings"`
}
func GetInstallationAdminData(config common.Config) (*Data, error) {
resp, err := http.Get(fmt.Sprintf("%s/data", config.Server))
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, err
}
var data Data
if err := json.Unmarshal(body, &data); err != nil {
return nil, err
}
return &data, nil
}