Skip to content

Commit

Permalink
feat: Update to gotado v2
Browse files Browse the repository at this point in the history
  • Loading branch information
gonzolino committed Apr 14, 2022
1 parent 832c2a0 commit 939d628
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 44 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ go 1.16

require (
cloud.google.com/go/secretmanager v1.4.0
github.com/gonzolino/gotado v0.3.0
github.com/gonzolino/gotado/v2 v2.0.1
google.golang.org/genproto v0.0.0-20220405205423-9d709892a2bf
)
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,8 @@ github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gonzolino/gotado v0.3.0 h1:C2EYL5LG0TtgAdxSWMjIMWuiOOJG/gciYabTOfl0f58=
github.com/gonzolino/gotado v0.3.0/go.mod h1:d28DwZ/nDgzprlp9nkMKnGJcBot/rs26QubifoHpDzI=
github.com/gonzolino/gotado/v2 v2.0.1 h1:NNoAEPfV2k7Qpr+vzcFNQGAjOQxNBabxCtVbBgGVMMY=
github.com/gonzolino/gotado/v2 v2.0.1/go.mod h1:GMiT2gP2rnZ7Blpy60aOFC7as6ZHG1wqLz44Q8229VA=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
Expand Down Expand Up @@ -187,8 +187,9 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
Expand Down Expand Up @@ -290,7 +291,6 @@ golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4Iltr
golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210113205817-d3ed898aa8a3/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
Expand Down
61 changes: 22 additions & 39 deletions window-close.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@ import (
"log"
"net/http"
"os"
"time"

"github.com/gonzolino/gotado"
"github.com/gonzolino/gotado/v2"
)

const (
Expand Down Expand Up @@ -96,54 +95,38 @@ func CloseWindow(w http.ResponseWriter, r *http.Request) {
return
}

tadoClient, err := gotado.NewClient(tadoClientID, tadoClientSecret).
WithTimeout(5*time.Second).
WithCredentials(ctx, tadoUsername, tadoPassword)
if err != nil {
// Treat failed tado login as internal server error, since credentials,
// authentication, etc. of tado° is all managed on the server side. User has no
log.Printf("Failed tado° login: %v", err)
httpError(w, http.StatusInternalServerError)
return
}
// tadoClient, err := gotado.NewClient(tadoClientID, tadoClientSecret).
// WithTimeout(5*time.Second).
// WithCredentials(ctx, tadoUsername, tadoPassword)
// if err != nil {
// // Treat failed tado login as internal server error, since credentials,
// // authentication, etc. of tado° is all managed on the server side. User has no
// log.Printf("Failed tado° login: %v", err)
// httpError(w, http.StatusInternalServerError)
// return
// }

user, err := gotado.GetMe(tadoClient)
tado := gotado.New(tadoClientID, tadoClientSecret)
user, err := tado.Me(ctx, tadoUsername, tadoPassword)
if err != nil {
log.Printf("Failed to get user info from tado°: %v", err)
httpError(w, http.StatusInternalServerError)
return
}
var userHome *gotado.UserHome
for _, h := range user.Homes {
if h.Name == action.HomeName {
h := h
userHome = &h
break
}
}
if userHome == nil {
http.Error(w, "Unkown home name", http.StatusUnprocessableEntity)
home, err := user.GetHome(ctx, action.HomeName)
if err != nil {
log.Printf("Failed to get home info from tado°: %v", err)
httpError(w, http.StatusInternalServerError)
return
}
zones, err := gotado.GetZones(tadoClient, userHome)
zone, err := home.GetZone(ctx, action.ZoneName)
if err != nil {
log.Printf("Failed to get home zones from tado°: %v", err)
httpError(w, http.StatusInternalServerError)
return
}
var zone *gotado.Zone
for _, z := range zones {
if z.Name == action.ZoneName {
zone = z
break
}
}
if zone == nil {
http.Error(w, "Unkown zone name", http.StatusUnprocessableEntity)
return
}

state, err := gotado.GetZoneState(tadoClient, userHome, zone)
state, err := zone.GetState(ctx)
if err != nil {
log.Printf("Failed to get zone state from tado°: %v", err)
httpError(w, http.StatusInternalServerError)
Expand All @@ -154,16 +137,16 @@ func CloseWindow(w http.ResponseWriter, r *http.Request) {
// because of an open window. We can therefore return to normal heating
// when the window is closed.
if state.Overlay.Type == "MANUAL" {
if err := gotado.DeleteZoneOverlay(tadoClient, userHome, zone); err != nil {
log.Printf("Failed to delete manual tado° zone overlay: %v", err)
if err := zone.ResumeSchedule(ctx); err != nil {
log.Printf("Failed to resume tado° zone schedule: %v", err)
httpError(w, http.StatusInternalServerError)
return
}
}

}

if err := gotado.SetWindowClosed(tadoClient, userHome, zone); err != nil {
if err := zone.CloseWindow(ctx); err != nil {
log.Printf("Failed to close window with tado° API: %v", err)
httpError(w, http.StatusInternalServerError)
return
Expand Down

0 comments on commit 939d628

Please sign in to comment.