/
platforms.go
37 lines (32 loc) · 1.39 KB
/
platforms.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package api
import (
"encoding/json"
"fmt"
"github.com/infamousjoeg/cybr-cli/pkg/cybr/api/queries"
"github.com/infamousjoeg/cybr-cli/pkg/cybr/api/responses"
httpJson "github.com/infamousjoeg/cybr-cli/pkg/cybr/helpers/httpjson"
)
// ListPlatforms available in CyberArk
func (c Client) ListPlatforms(query *queries.ListPlatforms) (*responses.ListPlatforms, error) {
url := fmt.Sprintf("%s/passwordvault/api/platforms%s", c.BaseURL, httpJson.GetURLQuery(query))
response, err := httpJson.Get(false, url, c.SessionToken, c.InsecureTLS, c.Logger)
if err != nil {
return &responses.ListPlatforms{}, fmt.Errorf("Failed to list platforms. %s", err)
}
jsonString, _ := json.Marshal(response)
ListPlatformsResponse := responses.ListPlatforms{}
err = json.Unmarshal(jsonString, &ListPlatformsResponse)
return &ListPlatformsResponse, err
}
// GetPlatform details for specific platform
func (c Client) GetPlatform(platformID string) (*responses.GetPlatform, error) {
url := fmt.Sprintf("%s/passwordvault/api/platforms/%s", c.BaseURL, platformID)
response, err := httpJson.Get(false, url, c.SessionToken, c.InsecureTLS, c.Logger)
if err != nil {
return &responses.GetPlatform{}, fmt.Errorf("Failed to get platform. %s", err)
}
jsonString, _ := json.Marshal(response)
GetPlatformResponse := &responses.GetPlatform{}
err = json.Unmarshal(jsonString, GetPlatformResponse)
return GetPlatformResponse, err
}