From 0a6419db7d1db3f7521c6532b126d78526c65caa Mon Sep 17 00:00:00 2001 From: Collin Guarino Date: Sat, 13 Feb 2016 11:23:33 -0500 Subject: Implemented Bridge.Delete and Light.Delete. --- bridge.go | 15 +++++++++++++++ light.go | 12 ++++++++++-- light_test.go | 7 ++++++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/bridge.go b/bridge.go index 0299cfa..bf50f2d 100644 --- a/bridge.go +++ b/bridge.go @@ -99,6 +99,21 @@ func (self *Bridge) Put(path string, params interface{}) ([]byte, io.Reader, err return handleResponse(resp) } +func (self *Bridge) Delete(path string) error { + uri := fmt.Sprintf("http://" + self.IPAddress + path) + client := &http.Client{} + req, err := http.NewRequest("DELETE", uri, nil) + resp, err := client.Do(req) + if err != nil { + return err + } + _, _, err := handleResponse(resp) + if err != nil { + return err + } + return nil +} + // HandleResponse manages the http.Response content from a // bridge Get/Put/Post/Delete by checking it for errors // and invalid return types. diff --git a/light.go b/light.go index e2c7522..3d3b68c 100644 --- a/light.go +++ b/light.go @@ -83,15 +83,23 @@ func (self *Light) On() error { // Light.Toggle will toggle the light source on and off func (self *Light) Toggle() error { if self.State.On { - fmt.Println("toggling off") return self.Off() } else { - fmt.Println("toggling on") return self.On() } return nil } +func (self *Light) Delete() error { + uri := fmt.Sprintf("/api/%s/lights/%d", self.Bridge.Username, self.Index) + err := self.Bridge.Delete(uri) + if err != nil { + return err + } + return nil +} + + // Light.Blink will turn the light off and on repeatedly for a given seconds // interval and return the light back to its off or on state afterwards. // Note: time will vary based on connection speed and algorithm speed. diff --git a/light_test.go b/light_test.go index da51dce..9f8f140 100644 --- a/light_test.go +++ b/light_test.go @@ -40,5 +40,10 @@ func TestSetLightState(t *testing.T) { selectedLight.SetName(selectedLight.Name) - selectedLight.Blink(3) + selectedLight.Blink(2) + + // err := selectedLight.Delete() + // if err != nil { + // fmt.Println("error on delete") + // } } -- cgit v1.2.3