Added GetOrganizationByName. Update README.MD with usage

This commit is contained in:
Steven Polley 2018-06-29 23:54:16 -06:00
parent 06e73821e0
commit f8eac0388a
2 changed files with 38 additions and 5 deletions

View File

@ -1,4 +1,27 @@
# go-itg
IT Glue API Structs + Receivers for the Go
This is not complete, and at least for now, I will only be adding support the functionality required for use within my organization. Feel free to send a pull request if you'd like to contribute anything that's missing.
This is nowhere near complete, and at least for now, I will only be adding support the functionality required for use within my organization. Feel free to send a pull request if you'd like to contribute anything that's missing.
#Installation
```
go get github.com/StevenPolley/go-itg
```
#Usage
```
package main
import (
"fmt"
"github.com/StevenPolley/go-itg/itglue"
)
func main() {
itgAPI := itglue.NewITGAPI("ITG.XXXXXXXXXXXXX555555YOURAPIDKEYHERE2222222222222222XXXXXX")
fmt.Println((*itgAPI).GetOrganizationByID(1234242).Data.Attributes.Name) //Returns the name of the Organization with ID 1234242
fmt.Println((*itgAPI).GetOrganizationByName("test Org Inc.").Data[0].Attributes.Description) //Returns the description of the Organization with Name "Test Org Inc."
}
```

View File

@ -3,6 +3,7 @@ package itglue
import (
"encoding/json"
"fmt"
"net/url"
)
//OrganizationInternalData contains the schema of an Organization in IT Glue without the "data" wrapper.
@ -39,13 +40,22 @@ type OrganizationList struct {
//Returns a pointer to an Organization struct
func (itg *ITGAPI) GetOrganizationByID(organizationID int) *Organization {
itgurl := itg.BuildURL(fmt.Sprintf("/organizations/%d", organizationID))
body := itg.GetRequest(itgurl)
organization := &Organization{}
err := json.Unmarshal(body, organization)
check(err)
return organization
}
//GetOrganizationByName expects an exact matching organization name and returns an OrganizationList
func (itg *ITGAPI) GetOrganizationByName(organizationName string) *OrganizationList {
itgurl := itg.BuildURL("/organizations")
params := url.Values{}
params.Add("filter[name]", organizationName)
itgurl.RawQuery = params.Encode()
body := itg.GetRequest(itgurl)
organization := &OrganizationList{}
err := json.Unmarshal(body, organization)
check(err)
return organization
}