diff --git a/itglue/itglue.go b/itglue/itglue.go index fd05cea..9711f40 100644 --- a/itglue/itglue.go +++ b/itglue/itglue.go @@ -8,6 +8,9 @@ import ( "net/url" ) +//TBD: Implement +type Links struct{} + type Metadata struct { CurrentPage int `json:"current-page"` NextPage interface{} `json:"next-page"` diff --git a/itglue/organization-statuses.go b/itglue/organization-statuses.go new file mode 100644 index 0000000..81df394 --- /dev/null +++ b/itglue/organization-statuses.go @@ -0,0 +1,51 @@ +package itglue + +import ( + "encoding/json" + "fmt" + "time" +) + +type OrganizationStatusData struct { + ID string `json:"id"` + Type string `json:"type"` + Attributes struct { + Name string `json:"name"` + CreatedAt time.Time `json:"created-at"` + UpdatedAt time.Time `json:"updated-at"` + Synced bool `json:"synced"` + } `json:"attributes"` +} + +type OrganizationStatus struct { + Data struct{ OrganizationStatusData } `json:"data"` + Meta struct{ Metadata } `json:"metadata"` + Links struct{ Links } `json:"links"` +} + +type OrganizationStatusList struct { + Data []struct{ OrganizationStatusData } `json:"data"` + Meta struct{ Metadata } `json:"metadata"` + Links struct{ Links } `json:"links"` +} + +func (itg *ITGAPI) GetOrganizationStatuses() (*OrganizationStatusList, error) { + itgurl, err := itg.BuildURL("/organization_statuses") + 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) + } + + organizationStatuses := &OrganizationStatusList{} + err = json.Unmarshal(body, organizationStatuses) + if err != nil { + return nil, fmt.Errorf("could not get organization types: %s", err) + } + + return organizationStatuses, nil + +} diff --git a/itglue/organization-types.go b/itglue/organization-types.go index 3b8e13a..1fbb3b6 100644 --- a/itglue/organization-types.go +++ b/itglue/organization-types.go @@ -18,13 +18,15 @@ type OrganizationTypeData struct { } type OrganizationType struct { - Data struct{ OrganizationTypeData } `json:"data"` - Meta struct{ Metadata } `json:"metadata"` + Data struct{ OrganizationTypeData } `json:"data"` + Meta struct{ Metadata } `json:"metadata"` + Links struct{ Links } `json:"links"` } type OrganizationTypeList struct { - Data []struct{ OrganizationTypeData } `json:"data"` - Meta struct{ Metadata } `json:"metadata"` + Data []struct{ OrganizationTypeData } `json:"data"` + Meta struct{ Metadata } `json:"metadata"` + Links struct{ Links } `json:"links"` } ///organization_types