Skip to content

Commit

Permalink
fix ListInstanceWithID references, use interface pointers
Browse files Browse the repository at this point in the history
  • Loading branch information
displague committed May 22, 2018
1 parent 9945aaf commit 6754595
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 22 deletions.
26 changes: 17 additions & 9 deletions example/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var spendMoney = false
func main() {
// Trigger endpoints that accrue a balance
apiToken, apiOk := os.LookupEnv("LINODE_TOKEN")
spendMoney = true && apiOk
spendMoney = spendMoney && apiOk

var err error
if err != nil {
Expand All @@ -39,28 +39,30 @@ func moreExamples_authenticated() {
var linode *golinode.Instance

linode, err := linodeClient.GetInstance(1231)
fmt.Printf("%#v", linode)
fmt.Println("## Instance request with Invalid ID")
fmt.Println("### Linode\n", linode, "\n### Error\n", err)

if spendMoney {
linode, err = linodeClient.CreateInstance(&golinode.InstanceCreateOptions{Region: "us-central", Type: "g5-nanode-1"})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%#v", linode)
fmt.Println("## Created Instance\n", linode)
}

linodes, err := linodeClient.ListInstances(nil)
fmt.Println("## List Instances")

if len(linodes) == 0 {
log.Printf("No Linodes to inspect.")
log.Println("No Linodes to inspect.")
} else {
// This is redundantly used for illustrative purposes
linode, err = linodeClient.GetInstance(linodes[0].ID)
if err != nil {
log.Fatal(err)
}

fmt.Printf("%#v", linode)
fmt.Println("## First Linode\n", linode)

configs, err := linodeClient.ListInstanceConfigs(linode.ID, nil)
if err != nil {
Expand All @@ -70,7 +72,9 @@ func moreExamples_authenticated() {
if err != nil {
log.Fatal(err)
}
fmt.Printf("First Config: %#v", config)
fmt.Println("### First Config:\n", config)
} else {
fmt.Println("### No Configs")
}

disks, err := linodeClient.ListInstanceDisks(linode.ID, nil)
Expand All @@ -81,7 +85,9 @@ func moreExamples_authenticated() {
if err != nil {
log.Fatal(err)
}
fmt.Printf("First Disk: %#v", disk)
fmt.Println("### First Disk\n", disk)
} else {
fmt.Println("### No Disks")
}

volumes, err := linodeClient.ListInstanceVolumes(linode.ID, nil)
Expand All @@ -92,13 +98,15 @@ func moreExamples_authenticated() {
if err != nil {
log.Fatal(err)
}
fmt.Printf("First Volume: %#v", volume)
fmt.Println("### First Volume\n", volume)
} else {
fmt.Println("### No Volumes")
}

stackscripts, err := linodeClient.ListStackscripts(&golinode.ListOptions{Filter: "{\"mine\":true}"})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v", stackscripts)
fmt.Println("## Your Stackscripts\n", stackscripts)
}
}
2 changes: 1 addition & 1 deletion instance_configs.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func (InstanceConfigsPagedResponse) SetResult(r *resty.Request) {
// ListInstanceConfigs lists InstanceConfigs
func (c *Client) ListInstanceConfigs(linodeID int, opts *ListOptions) ([]*InstanceConfig, error) {
response := InstanceConfigsPagedResponse{}
err := c.ListHelperWithID(response, linodeID, opts)
err := c.ListHelperWithID(&response, linodeID, opts)
for _, el := range response.Data {
el.fixDates()
}
Expand Down
2 changes: 1 addition & 1 deletion instance_disks.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ func (InstanceDisksPagedResponse) SetResult(r *resty.Request) {
// ListInstanceDisks lists InstanceDisks
func (c *Client) ListInstanceDisks(linodeID int, opts *ListOptions) ([]*InstanceDisk, error) {
response := InstanceDisksPagedResponse{}
err := c.ListHelperWithID(response, linodeID, opts)
err := c.ListHelperWithID(&response, linodeID, opts)
for _, el := range response.Data {
el.fixDates()
}
Expand Down
2 changes: 1 addition & 1 deletion instance_snapshots.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ func (InstanceSnapshotsPagedResponse) SetResult(r *resty.Request) {
// ListInstanceSnapshots lists InstanceSnapshots
func (c *Client) ListInstanceSnapshots(linodeID int, opts *ListOptions) ([]*InstanceSnapshot, error) {
response := InstanceSnapshotsPagedResponse{}
err := c.ListHelperWithID(response, linodeID, opts)
err := c.ListHelperWithID(&response, linodeID, opts)
for _, el := range response.Data {
el.fixDates()
}
Expand Down
2 changes: 1 addition & 1 deletion instance_volumes.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func (InstanceVolumesPagedResponse) SetResult(r *resty.Request) {
// ListInstanceVolumes lists InstanceVolumes
func (c *Client) ListInstanceVolumes(linodeID int, opts *ListOptions) ([]*Volume, error) {
response := InstanceVolumesPagedResponse{}
err := c.ListHelperWithID(response, linodeID, opts)
err := c.ListHelperWithID(&response, linodeID, opts)
for _, el := range response.Data {
el.fixDates()
}
Expand Down
2 changes: 1 addition & 1 deletion nodebalancer_config_nodes.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func (NodeBalancerNodesPagedResponse) SetResult(r *resty.Request) {
// ListNodeBalancerNodes lists NodeBalancerNodes
func (c *Client) ListNodeBalancerNodes(nodebalancerID int, configID int, opts *ListOptions) ([]*NodeBalancerNode, error) {
response := NodeBalancerNodesPagedResponse{}
err := c.ListHelperWithID(response, nodebalancerID, opts)
err := c.ListHelperWithID(&response, nodebalancerID, opts)
for _, el := range response.Data {
el.fixDates()
}
Expand Down
2 changes: 1 addition & 1 deletion nodebalancer_configs.go
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ func (NodeBalancerConfigsPagedResponse) SetResult(r *resty.Request) {
// ListNodeBalancerConfigs lists NodeBalancerConfigs
func (c *Client) ListNodeBalancerConfigs(nodebalancerID int, opts *ListOptions) ([]*NodeBalancerConfig, error) {
response := NodeBalancerConfigsPagedResponse{}
err := c.ListHelperWithID(response, nodebalancerID, opts)
err := c.ListHelperWithID(&response, nodebalancerID, opts)
for _, el := range response.Data {
el.fixDates()
}
Expand Down
14 changes: 7 additions & 7 deletions pagination.go
Original file line number Diff line number Diff line change
Expand Up @@ -306,43 +306,43 @@ func (c *Client) ListHelperWithID(i interface{}, id int, opts *ListOptions) erro
}

switch v := i.(type) {
case InvoiceItemsPagedResponse:
case *InvoiceItemsPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(InvoiceItemsPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*InvoiceItemsPagedResponse).Pages
results = r.Result().(*InvoiceItemsPagedResponse).Results
v.AppendData(r.Result().(*InvoiceItemsPagedResponse))
}
case DomainRecordsPagedResponse:
case *DomainRecordsPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(DomainRecordsPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*DomainRecordsPagedResponse).Pages
results = r.Result().(*DomainRecordsPagedResponse).Results
v.AppendData(r.Result().(*DomainRecordsPagedResponse))
}
case InstanceSnapshotsPagedResponse:
case *InstanceSnapshotsPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(InstanceSnapshotsPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*InstanceSnapshotsPagedResponse).Pages
results = r.Result().(*InstanceSnapshotsPagedResponse).Results
v.AppendData(r.Result().(*InstanceSnapshotsPagedResponse))
}
case InstanceConfigsPagedResponse:
case *InstanceConfigsPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(InstanceConfigsPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*InstanceConfigsPagedResponse).Pages
results = r.Result().(*InstanceConfigsPagedResponse).Results
v.AppendData(r.Result().(*InstanceConfigsPagedResponse))
}
case InstanceDisksPagedResponse:
case *InstanceDisksPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(InstanceDisksPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*InstanceDisksPagedResponse).Pages
results = r.Result().(*InstanceDisksPagedResponse).Results
v.AppendData(r.Result().(*InstanceDisksPagedResponse))
}
case NodeBalancerConfigsPagedResponse:
case *NodeBalancerConfigsPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(NodeBalancerConfigsPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*NodeBalancerConfigsPagedResponse).Pages
results = r.Result().(*NodeBalancerConfigsPagedResponse).Results
v.AppendData(r.Result().(*NodeBalancerConfigsPagedResponse))
}
case InstanceVolumesPagedResponse:
case *InstanceVolumesPagedResponse:
if r, err = coupleAPIErrors(req.SetResult(InstanceVolumesPagedResponse{}).Get(v.EndpointWithID(c, id))); err == nil {
pages = r.Result().(*InstanceVolumesPagedResponse).Pages
results = r.Result().(*InstanceVolumesPagedResponse).Results
Expand Down

0 comments on commit 6754595

Please sign in to comment.