| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package startram
- import (
- "encoding/json"
- "fmt"
- "goseg/config"
- "goseg/structs"
- "io/ioutil"
- "log/slog"
- "net/http"
- "os"
- )
- var (
- logger = slog.New(slog.NewJSONHandler(os.Stdout, nil))
- )
- func GetRegions() (map[string]structs.StartramRegion, error) {
- var regions map[string]structs.StartramRegion
- config := config.Conf()
- regionUrl := "https://" + config.EndpointUrl + "/v1/regions"
- resp, err := http.Get(regionUrl)
- if err != nil {
- errmsg := fmt.Sprintf("Unable to connect to API server: %v", err)
- logger.Warn(errmsg)
- return regions, err
- }
- body, err := ioutil.ReadAll(resp.Body)
- resp.Body.Close()
- if err != nil {
- errmsg := fmt.Sprintf("Error reading regions info: %v", err)
- logger.Warn(errmsg)
- return regions, err
- }
- // unmarshal values into struct
- err = json.Unmarshal(body, ®ions)
- if err != nil {
- errmsg := fmt.Sprintf("Error unmarshalling regions json: %v", err)
- fmt.Println(string(body))
- logger.Warn(errmsg)
- return regions, err
- }
- return regions, nil
- }
- func Retrieve() (structs.StartramRetrieve, error) {
- var retrieve structs.StartramRetrieve
- conf := config.Conf()
- regionUrl := "https://" + conf.EndpointUrl + "/v1/retrieve?pubkey=" + conf.Pubkey
- resp, err := http.Get(regionUrl)
- if err != nil {
- errmsg := fmt.Sprintf("Unable to connect to API server: %v", err)
- logger.Warn(errmsg)
- return retrieve, err
- }
- // read response body
- body, err := ioutil.ReadAll(resp.Body)
- resp.Body.Close()
- if err != nil {
- errmsg := fmt.Sprintf("Error reading retrieve info: %v", err)
- logger.Warn(errmsg)
- return retrieve, err
- }
- // unmarshal values into struct
- err = json.Unmarshal(body, &retrieve)
- if err != nil {
- errmsg := fmt.Sprintf("Error unmarshalling retrieve json: %v", err)
- fmt.Println(string(body))
- logger.Warn(errmsg)
- return retrieve, err
- }
- // pin that ho to the global vars
- config.StartramConfig = retrieve
- logger.Info(fmt.Sprintf("StarTram info retrieved: %s", string(body)))
- return retrieve, nil
- }
|