fix: refactor postgres after api updates
Some checks failed
CI Workflow / Check GoReleaser config (pull_request) Successful in 12s
CI Workflow / CI (pull_request) Failing after 30s
Publish / Check GoReleaser config (pull_request) Has been skipped
CI Workflow / Code coverage report (pull_request) Has been skipped
Publish / Publish provider (pull_request) Has been skipped

This commit is contained in:
Marcel S. Henselin 2026-01-30 11:58:26 +01:00
parent 32b83a0836
commit 764978db88
6 changed files with 52 additions and 16 deletions

View file

@ -3,6 +3,7 @@ package postgresflexalpha
import (
"context"
"fmt"
"math"
"net/http"
"strconv"
@ -179,7 +180,13 @@ func (r *userDataSource) Read(
projectId := model.ProjectId.ValueString()
instanceId := model.InstanceId.ValueString()
userId := model.UserId.ValueInt64()
userId64 := model.UserId.ValueInt64()
if userId64 > math.MaxInt32 {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error in type conversion", "int value too large (userId)")
return
}
userId := int32(userId64)
region := r.providerData.GetRegionWithOverride(model.Region)
ctx = tflog.SetField(ctx, "project_id", projectId)
ctx = tflog.SetField(ctx, "instance_id", instanceId)

View file

@ -4,6 +4,7 @@ import (
"context"
"errors"
"fmt"
"math"
"net/http"
"strconv"
"strings"
@ -390,13 +391,20 @@ func (r *userResource) Update(
return
}
userId64 := arg.userId
if userId64 > math.MaxInt32 {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error in type conversion", "int value too large (userId)")
return
}
userId := int32(userId64)
// Update existing instance
err = r.client.UpdateUserRequest(
ctx,
arg.projectId,
arg.region,
arg.instanceId,
arg.userId,
userId,
).UpdateUserRequestPayload(*payload).Execute()
if err != nil {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error updating user", err.Error())
@ -446,8 +454,15 @@ func (r *userResource) Delete(
ctx = r.setTFLogFields(ctx, &model)
arg := r.getClientArg(&model)
userId64 := arg.userId
if userId64 > math.MaxInt32 {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error in type conversion", "int value too large (userId)")
return
}
userId := int32(userId64)
// Delete existing record set
err := r.client.DeleteUserRequest(ctx, arg.projectId, arg.region, arg.instanceId, arg.userId).Execute()
err := r.client.DeleteUserRequest(ctx, arg.projectId, arg.region, arg.instanceId, userId).Execute()
if err != nil {
core.LogAndAddError(ctx, &resp.Diagnostics, "Error deleting user", fmt.Sprintf("Calling API: %v", err))
}
@ -555,8 +570,14 @@ func (r *userResource) getUserResource(ctx context.Context, model *Model) (bool,
ctx = r.setTFLogFields(ctx, model)
arg := r.getClientArg(model)
userId64 := arg.userId
if userId64 > math.MaxInt32 {
return false, errors.New("error in type conversion: int value too large (userId)")
}
userId := int32(userId64)
// API Call
userResp, err := r.client.GetUserRequest(ctx, arg.projectId, arg.region, arg.instanceId, arg.userId).Execute()
userResp, err := r.client.GetUserRequest(ctx, arg.projectId, arg.region, arg.instanceId, userId).Execute()
if err != nil {
var oapiErr *oapierror.GenericOpenAPIError