|
- package main
-
- import (
- "context"
- "crypto/tls"
- "encoding/json"
- "fmt"
- "net/http"
- "net/url"
- "strings"
-
- "github.com/AFASystems/presence/internal/pkg/model"
- )
-
- type response struct {
- A string `json:"access_token"`
- }
-
- func main() {
- ctx := context.Background()
-
- tr := &http.Transport{
- TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
- }
- client := &http.Client{Transport: tr}
-
- formData := url.Values{}
- formData.Set("grant_type", "password")
- formData.Set("client_id", "Fastapi")
- formData.Set("client_secret", "wojuoB7Z5xhlPFrF2lIxJSSdVHCApEgC")
- formData.Set("username", "core")
- formData.Set("password", "C0r3_us3r_Cr3d3nt14ls")
- formData.Set("audience", "Fastapi")
-
- req, err := http.NewRequest("POST", "https://10.251.0.30:10002/realms/API.Server.local/protocol/openid-connect/token", strings.NewReader(formData.Encode()))
- if err != nil {
- panic(err)
- }
- req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
-
- req = req.WithContext(ctx)
- res, err := client.Do(req)
- if err != nil {
- panic(err)
- }
-
- var j response
-
- err = json.NewDecoder(res.Body).Decode(&j)
- if err != nil {
- panic(err)
- }
-
- token := j.A
-
- trackers, err := GetTrackers(token, client)
- if err != nil {
- panic(err)
- }
-
- fmt.Printf("trackers: %+v\n", trackers)
-
- gateways, err := getGateways(token, client)
- if err != nil {
- panic(err)
- }
-
- fmt.Printf("gateways: %+v\n", gateways)
-
- zones, err := GetZones(token, client)
- if err != nil {
- panic(err)
- }
-
- fmt.Printf("zones: %+v\n", zones)
-
- trackerZones, err := GetTrackerZones(token, client)
- if err != nil {
- panic(err)
- }
-
- fmt.Printf("tracker zones: %+v\n", trackerZones)
- }
-
- func GetTrackers(token string, client *http.Client) ([]model.Tracker, error) {
- res, err := getRequest(token, "getTrackers", client)
- if err != nil {
- return nil, err
- }
-
- var i []model.Tracker
- err = json.NewDecoder(res.Body).Decode(&i)
- if err != nil {
- return nil, err
- }
-
- return i, nil
- }
-
- func getGateways(token string, client *http.Client) ([]model.Gateway, error) {
- res, err := getRequest(token, "getGateways", client)
- if err != nil {
- return nil, err
- }
-
- var i []model.Gateway
- err = json.NewDecoder(res.Body).Decode(&i)
- if err != nil {
- return nil, err
- }
-
- return i, nil
- }
-
- func GetTrackerZones(token string, client *http.Client) ([]model.TrackerZones, error) {
- res, err := getRequest(token, "getTrackerZones", client)
- if err != nil {
- return nil, err
- }
-
- var i []model.TrackerZones
- err = json.NewDecoder(res.Body).Decode(&i)
- if err != nil {
- return nil, err
- }
-
- return i, nil
- }
-
- func GetZones(token string, client *http.Client) ([]model.Zone, error) {
- res, err := getRequest(token, "getZones", client)
- if err != nil {
- return nil, err
- }
-
- var i []model.Zone
- err = json.NewDecoder(res.Body).Decode(&i)
- if err != nil {
- return nil, err
- }
-
- return i, nil
- }
-
- func getRequest(token, route string, client *http.Client) (*http.Response, error) {
- url := fmt.Sprintf("https://10.251.0.30:5050/reslevis/%s", route)
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- return nil, err
- }
-
- header := fmt.Sprintf("Bearer %s", token)
-
- req.Header.Add("Authorization", header)
- res, err := client.Do(req)
- if err != nil {
- return nil, err
- }
-
- return res, nil
- }
|