Skip to content

Commit

Permalink
Merge pull request #44 from gonzolino/fix-deprecations
Browse files Browse the repository at this point in the history
Replace deprecated fields and functions
  • Loading branch information
gonzolino authored Dec 3, 2022
2 parents 83de1eb + 294824e commit 9b01d01
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 34 deletions.
39 changes: 22 additions & 17 deletions internal/provider/geofencing_resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,36 +100,38 @@ func (r GeofencingResource) Create(ctx context.Context, req resource.CreateReque
return
}

home, err := me.GetHome(ctx, data.HomeName.Value)
homeName := data.HomeName.ValueString()
home, err := me.GetHome(ctx, homeName)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", data.HomeName.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", homeName, err))
return
}

switch data.Presence.Value {
presence := data.Presence.ValueString()
switch presence {
case "auto":
err = home.SetPresenceAuto(ctx)
case "home":
err = home.SetPresenceHome(ctx)
case "away":
err = home.SetPresenceAway(ctx)
default:
resp.Diagnostics.AddError("Invalid Presence", fmt.Sprintf("Invalid presence value '%s', must be one of 'auto', 'home' or 'away'.", data.Presence.Value))
resp.Diagnostics.AddError("Invalid Presence", fmt.Sprintf("Invalid presence value '%s', must be one of 'auto', 'home' or 'away'.", presence))
return
}

if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to set presence to '%s': %v", data.Presence.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to set presence to '%s': %v", presence, err))
return
}

homeState, err := home.GetState(ctx)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get state of home '%s': %v", data.HomeName.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get state of home '%s': %v", homeName, err))
return
}

presence := strings.ToLower(string(homeState.Presence))
presence = strings.ToLower(string(homeState.Presence))
// If presence is not locked, it is set to 'auto'.
if !homeState.PresenceLocked {
presence = "auto"
Expand Down Expand Up @@ -159,15 +161,16 @@ func (r GeofencingResource) Read(ctx context.Context, req resource.ReadRequest,
return
}

home, err := me.GetHome(ctx, data.HomeName.Value)
homeName := data.HomeName.ValueString()
home, err := me.GetHome(ctx, homeName)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", data.HomeName.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", homeName, err))
return
}

homeState, err := home.GetState(ctx)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get state of home '%s': %v", data.HomeName.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get state of home '%s': %v", homeName, err))
return
}

Expand Down Expand Up @@ -201,36 +204,38 @@ func (r GeofencingResource) Update(ctx context.Context, req resource.UpdateReque
return
}

home, err := me.GetHome(ctx, data.HomeName.Value)
homeName := data.HomeName.ValueString()
home, err := me.GetHome(ctx, homeName)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", data.HomeName.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", homeName, err))
return
}

switch data.Presence.Value {
presence := data.Presence.ValueString()
switch presence {
case "auto":
err = home.SetPresenceAuto(ctx)
case "home":
err = home.SetPresenceHome(ctx)
case "away":
err = home.SetPresenceAway(ctx)
default:
resp.Diagnostics.AddError("Invalid Presence", fmt.Sprintf("Invalid presence value '%s', must be one of 'auto', 'home' or 'away'.", data.Presence.Value))
resp.Diagnostics.AddError("Invalid Presence", fmt.Sprintf("Invalid presence value '%s', must be one of 'auto', 'home' or 'away'.", presence))
return
}

if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to set presence to '%s': %v", data.Presence.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to set presence to '%s': %v", presence, err))
return
}

homeState, err := home.GetState(ctx)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get state of home '%s': %v", data.HomeName.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get state of home '%s': %v", homeName, err))
return
}

presence := strings.ToLower(string(homeState.Presence))
presence = strings.ToLower(string(homeState.Presence))
// If presence is not locked, it is set to 'auto'.
if !homeState.PresenceLocked {
presence = "auto"
Expand Down
2 changes: 1 addition & 1 deletion internal/provider/home_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ func (d HomeDataSource) Read(ctx context.Context, req datasource.ReadRequest, re
return
}

home, err := me.GetHome(ctx, data.Name.Value)
home, err := me.GetHome(ctx, data.Name.ValueString())
if err != nil {
resp.Diagnostics.AddError("Tado Authentication Error", fmt.Sprintf("Unable to authenticate with Tado: %v", err))
return
Expand Down
12 changes: 6 additions & 6 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,26 +78,26 @@ func (*TadoProvider) Configure(ctx context.Context, req provider.ConfigureReques
}

var username string
if data.Username.Unknown {
if data.Username.IsUnknown() {
resp.Diagnostics.AddWarning("Tado username is not set", "Tado username is not set. This is required for authentication.")
}
if data.Username.Null {
if data.Username.IsNull() {
username = os.Getenv("TADO_USERNAME")
} else {
username = data.Username.Value
username = data.Username.ValueString()
}
if username == "" {
resp.Diagnostics.AddError("Tado username is not set", "Tado username is not set. This is required for authentication.")
}

var password string
if data.Password.Unknown {
if data.Password.IsUnknown() {
resp.Diagnostics.AddWarning("Tado password is not set", "Tado password is not set. This is required for authentication.")
}
if data.Password.Null {
if data.Password.IsNull() {
password = os.Getenv("TADO_PASSWORD")
} else {
password = data.Password.Value
password = data.Password.ValueString()
}
if password == "" {
resp.Diagnostics.AddError("Tado password is not set", "Tado password is not set. This is required for authentication.")
Expand Down
7 changes: 2 additions & 5 deletions internal/provider/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@ import (
// toTypesString converts a string pointer to a types.String.
// If the pointer is nil, the types.String will be set to Null.
func toTypesString(s *string) types.String {
str := types.String{}
if s == nil {
str.Null = true
} else {
str.Value = *s
return types.StringNull()
}
return str
return types.StringValue(*s)
}
2 changes: 1 addition & 1 deletion internal/provider/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func TestToTypesStr(t *testing.T) {
}{
{
s: "test",
expected: types.String{Value: "test"},
expected: types.StringValue("test"),
},
}

Expand Down
10 changes: 6 additions & 4 deletions internal/provider/zone_data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,17 @@ func (d ZoneDataSource) Read(ctx context.Context, req datasource.ReadRequest, re
return
}

home, err := me.GetHome(ctx, data.Home.Value)
homeName := data.Home.ValueString()
home, err := me.GetHome(ctx, homeName)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", data.Home.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get home '%s': %v", homeName, err))
return
}

zone, err := home.GetZone(ctx, data.Name.Value)
zoneName := data.Name.ValueString()
zone, err := home.GetZone(ctx, zoneName)
if err != nil {
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get zone '%s': %v", data.Name.Value, err))
resp.Diagnostics.AddError("Tado API Error", fmt.Sprintf("Unable to get zone '%s': %v", zoneName, err))
return
}

Expand Down

0 comments on commit 9b01d01

Please sign in to comment.