aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bridge.go15
-rw-r--r--light.go12
-rw-r--r--light_test.go7
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")
+ // }
}