diff options
-rw-r--r-- | bridge.go | 15 | ||||
-rw-r--r-- | light.go | 12 | ||||
-rw-r--r-- | light_test.go | 7 |
3 files changed, 31 insertions, 3 deletions
@@ -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. @@ -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") + // } } |