diff --git a/itglue/flexible-asset-types.go b/itglue/flexible-asset-types.go new file mode 100644 index 0000000..35cb9b1 --- /dev/null +++ b/itglue/flexible-asset-types.go @@ -0,0 +1,54 @@ +package itglue + +import ( + "encoding/json" + "fmt" + "time" +) + +type FlexibleAssetTypeData struct { + ID string `json:"id"` + Type string `json:"type"` + Attributes struct { + Name string `json:"name"` + Description string `json:"description"` + CreatedAt time.Time `json:"created-at"` + UpdatedAt time.Time `json:"updated-at"` + Icon string `json:"icon"` + Enabled bool `json:"enabled"` + } `json:"attributes"` + Relationships struct { + } `json:"relationships"` +} + +type FlexibleAssetType struct { + Data struct{ FlexibleAssetTypeData } `json:"data"` + Meta struct{ Metadata } `json:"metadata"` + Links struct{ Links } `json:"links"` +} + +type FlexibleAssetTypeList struct { + Data []struct{ FlexibleAssetTypeData } `json:"data"` + Meta struct{ Metadata } `json:"metadata"` + Links struct{ Links } `json:"links"` +} + +func (itg *ITGAPI) GetFlexibleAssetTypes() (*FlexibleAssetTypeList, error) { + itgurl, err := itg.BuildURL("/flexible_asset_types") + if err != nil { + return nil, fmt.Errorf("could not build URL: %s", err) + } + body, err := itg.GetRequest(itgurl) + + if err != nil { + return nil, fmt.Errorf("request failed: %s", err) + } + + flexibleAssetTypes := &FlexibleAssetTypeList{} + err = json.Unmarshal(body, flexibleAssetTypes) + if err != nil { + return nil, fmt.Errorf("could not get flexible asset types: %s", err) + } + + return flexibleAssetTypes, nil +}