Skip to content

Commit b31e6c5

Browse files
netlight-katomvantellingen
authored andcommitted
Add Support for deleteDaysAfterCreation in Messages Configuration
Commercetools' [MessagesConfiguration](https://docs.commercetools.com/api/projects/project#messagesconfiguration) allows to set `deleteDaysAfterCreation` to configure the message retention time. The supported values are between 1 and 90 (inclusive).
1 parent 41d2635 commit b31e6c5

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

commercetools/resource_project.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1213
"github.com/labd/commercetools-go-sdk/platform"
1314
)
1415

@@ -89,6 +90,12 @@ func resourceProjectSettings() *schema.Resource {
8990
Type: schema.TypeBool,
9091
Required: true,
9192
},
93+
"delete_days_after_creation": {
94+
Description: "Specifies the number of days each Message should be available via the Messages Query API",
95+
Type: schema.TypeInt,
96+
ValidateDiagFunc: validation.ToDiagFunc(validation.IntBetween(1, 90)),
97+
Optional: true,
98+
},
9299
},
93100
},
94101
},
@@ -310,6 +317,16 @@ func projectUpdate(ctx context.Context, d *schema.ResourceData, client *platform
310317
})
311318
}
312319

320+
if messages["delete_days_after_creation"] != nil {
321+
input.Actions = append(
322+
input.Actions,
323+
&platform.ProjectChangeMessagesConfigurationAction{
324+
MessagesConfiguration: platform.MessagesConfigurationDraft{
325+
DeleteDaysAfterCreation: messages["delete_days_after_creation"].(int),
326+
},
327+
})
328+
329+
}
313330
}
314331

315332
if d.HasChange("shipping_rate_input_type") || d.HasChange("shipping_rate_cart_classification_value") {
@@ -526,6 +543,7 @@ func flattenProjectMessages(val platform.MessagesConfiguration, d *schema.Resour
526543
return []map[string]any{
527544
{
528545
"enabled": val.Enabled,
546+
"deleteDaysAfterCreation": val.DeleteDaysAfterCreation,
529547
},
530548
}
531549
}

commercetools/resource_project_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ func TestAccProjectCreate_basic(t *testing.T) {
5858

5959
assert.True(t, *result.Carts.CountryTaxRateFallbackEnabled)
6060
assert.EqualValues(t, result.Messages.Enabled, true)
61+
assert.EqualValues(t, result.Messages.DeleteDaysAfterCreation, 90)
6162
assert.EqualValues(t, result.ExternalOAuth.Url, "https://example.com/oauth/token")
6263
assert.EqualValues(t, result.ExternalOAuth.AuthorizationHeader, "****")
6364
assert.EqualValues(t, result.Countries, []string{"NL", "DE", "US"})
@@ -77,6 +78,7 @@ func TestAccProjectCreate_basic(t *testing.T) {
7778
resource.TestCheckResourceAttr(resourceName, "currencies.#", "3"),
7879
resource.TestCheckResourceAttr(resourceName, "languages.#", "5"),
7980
resource.TestCheckResourceAttr(resourceName, "messages.0.enabled", "false"),
81+
resource.TestCheckResourceAttr(resourceName, "messages.0.deleteDaysAfterCreation", "15"),
8082
resource.TestCheckResourceAttr(
8183
resourceName, "external_oauth.0.url", "https://new-example.com/oauth/token"),
8284
resource.TestCheckResourceAttr(
@@ -173,6 +175,7 @@ func testAccProjectConfig(identifier string) string {
173175
174176
messages {
175177
enabled = true
178+
deleteDaysAfterCreation = 90
176179
}
177180
178181
carts {
@@ -199,6 +202,7 @@ func testAccProjectConfigUpdate(identifier string) string {
199202
}
200203
messages {
201204
enabled = false
205+
deleteDaysAfterCreation = 15
202206
}
203207
204208
carts {

0 commit comments

Comments
 (0)