in teamcity/user.go [157:193]
func (r *userResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
var oldState userResourceModel
diags := req.State.Get(ctx, &oldState)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
var actual *client.User
var err error
if oldState.Id.IsNull() != true {
actual, err = r.client.GetUser(oldState.Id.ValueString())
} else {
actual, err = r.client.GetUserByName(oldState.Username.ValueString())
}
if err != nil {
resp.Diagnostics.AddError(
"Error Reading user",
"Could not read user settings: "+err.Error(),
)
return
}
if actual == nil {
resp.State.RemoveResource(ctx)
return
}
newState := r.readState(actual)
newState.Password = oldState.Password
diags = resp.State.Set(ctx, newState)
resp.Diagnostics.Append(diags...)
if resp.Diagnostics.HasError() {
return
}
}