Skip to content

Commit

Permalink
chore: simplify tech emails helper function
Browse files Browse the repository at this point in the history
  • Loading branch information
rriski committed Oct 8, 2024
1 parent af8729f commit 7b8dd00
Showing 1 changed file with 19 additions and 9 deletions.
28 changes: 19 additions & 9 deletions internal/schemautil/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -416,6 +416,11 @@ func resourceServiceCreate(ctx context.Context, d *schema.ResourceData, m interf
return diag.FromErr(err)
}

technicalEmails, err := getContactEmailListForAPI(d)
if err != nil {
return diag.FromErr(err)
}

_, err = client.Services.Create(
ctx,
project,
Expand All @@ -431,7 +436,7 @@ func resourceServiceCreate(ctx context.Context, d *schema.ResourceData, m interf
DiskSpaceMB: diskSpace,
UserConfig: cuc,
StaticIPs: FlattenToString(d.Get("static_ips").(*schema.Set).List()),
TechnicalEmails: getContactEmailListForAPI(d, "tech_emails"),
TechnicalEmails: technicalEmails,
},
)
if err != nil {
Expand Down Expand Up @@ -505,6 +510,10 @@ func ResourceServiceUpdate(ctx context.Context, d *schema.ResourceData, m interf
if err != nil {
return diag.FromErr(err)
}
technicalEmails, err := getContactEmailListForAPI(d)
if err != nil {
return diag.FromErr(err)
}

if _, err := client.Services.Update(
ctx,
Expand All @@ -520,7 +529,7 @@ func ResourceServiceUpdate(ctx context.Context, d *schema.ResourceData, m interf
DiskSpaceMB: diskSpace,
Karapace: karapace,
UserConfig: cuc,
TechnicalEmails: getContactEmailListForAPI(d, "tech_emails"),
TechnicalEmails: technicalEmails,
},
); err != nil {
return diag.Errorf("error updating (%s) service: %s", serviceName, err)
Expand Down Expand Up @@ -953,15 +962,16 @@ func DatasourceServiceRead(ctx context.Context, d *schema.ResourceData, m interf
return diag.Errorf("common %s/%s not found", projectName, serviceName)
}

func getContactEmailListForAPI(d *schema.ResourceData, field string) *[]aiven.ContactEmail {
results := make([]aiven.ContactEmail, 0)
valuesInterface, ok := d.GetOk(field)
if ok {
for _, emailInterface := range valuesInterface.(*schema.Set).List() {
results = append(results, aiven.ContactEmail{Email: emailInterface.(map[string]interface{})["email"].(string)})
func getContactEmailListForAPI(d *schema.ResourceData) (*[]aiven.ContactEmail, error) {
if valuesInterface, ok := d.GetOk("tech_emails"); ok {
var emails []aiven.ContactEmail
err := Remarshal(valuesInterface.(*schema.Set).List(), &emails)
if err != nil {
return nil, err // Handle error appropriately
}
return &emails, nil
}
return &results
return &[]aiven.ContactEmail{}, nil
}

func ExpandService(name string, d *schema.ResourceData) (map[string]any, error) {
Expand Down

0 comments on commit 7b8dd00

Please sign in to comment.