Skip to content

Commit 3a077bb

Browse files
Address review comments
1 parent 02d8887 commit 3a077bb

3 files changed

Lines changed: 41 additions & 61 deletions

File tree

cfn-resources/federated-settings-identity-provider/cmd/resource/handlers.go

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ func HandleCreate(client *util.MongoDBClient, currentModel *Model) handler.Progr
4545
)
4646
}
4747

48-
createdID := created.GetId()
49-
currentModel.IdpId = &createdID
48+
currentModel.IdpId = util.Pointer(created.GetId())
49+
5050
return HandleRead(client, currentModel)
5151
}
5252

@@ -77,14 +77,8 @@ func HandleUpdate(client *util.MongoDBClient, prevModel *Model, currentModel *Mo
7777
federationSettingsID := util.SafeString(currentModel.FederationSettingsId)
7878
idpID := util.SafeString(currentModel.IdpId)
7979

80-
associatedDomains := currentModel.AssociatedDomains
81-
if associatedDomains == nil {
82-
associatedDomains = []string{}
83-
}
84-
requestedScopes := currentModel.RequestedScopes
85-
if requestedScopes == nil {
86-
requestedScopes = []string{}
87-
}
80+
associatedDomains := getStringSliceOrEmpty(currentModel.AssociatedDomains)
81+
requestedScopes := getStringSliceOrEmpty(currentModel.RequestedScopes)
8882

8983
updateReq := &admin.FederationIdentityProviderUpdate{
9084
AssociatedDomains: &associatedDomains,

cfn-resources/federated-settings-identity-provider/cmd/resource/mappings.go

Lines changed: 24 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,13 @@ var (
3333
allIdpTypes = []string{IdpTypeWorkforce, IdpTypeWorkload}
3434
)
3535

36+
func getStringSliceOrEmpty(slice []string) []string {
37+
if slice != nil {
38+
return slice
39+
}
40+
return []string{}
41+
}
42+
3643
func GetFederatedSettingsIdentityProviderModel(api *admin.FederationIdentityProvider, currentModel *Model) *Model {
3744
var model *Model
3845
if currentModel != nil {
@@ -49,56 +56,40 @@ func GetFederatedSettingsIdentityProviderModel(api *admin.FederationIdentityProv
4956
model.OktaIdpId = oktaID
5057
}
5158

52-
idpID := api.GetId()
53-
model.IdpId = &idpID
59+
model.IdpId = util.Pointer(api.GetId())
60+
model.Name = util.Pointer(api.GetDisplayName())
61+
model.IssuerUri = util.Pointer(api.GetIssuerUri())
62+
model.Protocol = util.Pointer(api.GetProtocol())
63+
model.Description = util.Pointer(api.GetDescription())
64+
model.AuthorizationType = util.Pointer(api.GetAuthorizationType())
65+
model.IdpType = util.Pointer(api.GetIdpType())
5466

55-
displayName := api.GetDisplayName()
56-
model.Name = &displayName
57-
issuerURI := api.GetIssuerUri()
58-
model.IssuerUri = &issuerURI
5967
protocol := api.GetProtocol()
60-
model.Protocol = &protocol
61-
62-
description := api.GetDescription()
63-
model.Description = &description
64-
authorizationType := api.GetAuthorizationType()
65-
model.AuthorizationType = &authorizationType
66-
idpType := api.GetIdpType()
67-
model.IdpType = &idpType
68-
6968
switch protocol {
7069
case ProtocolSAML:
71-
requestBinding := api.GetRequestBinding()
72-
model.RequestBinding = &requestBinding
73-
responseSignatureAlgorithm := api.GetResponseSignatureAlgorithm()
74-
model.ResponseSignatureAlgorithm = &responseSignatureAlgorithm
70+
model.RequestBinding = util.Pointer(api.GetRequestBinding())
71+
model.ResponseSignatureAlgorithm = util.Pointer(api.GetResponseSignatureAlgorithm())
7572
model.SsoDebugEnabled = api.SsoDebugEnabled
76-
ssoURL := api.GetSsoUrl()
77-
model.SsoUrl = &ssoURL
78-
status := api.GetStatus()
79-
model.Status = &status
73+
model.SsoUrl = util.Pointer(api.GetSsoUrl())
74+
model.Status = util.Pointer(api.GetStatus())
8075

8176
associatedDomains := api.GetAssociatedDomains()
8277
if len(associatedDomains) == 0 && currentModel != nil && len(currentModel.AssociatedDomains) > 0 {
8378
associatedDomains = currentModel.AssociatedDomains
8479
}
8580
model.AssociatedDomains = associatedDomains
8681
case ProtocolOIDC:
87-
audience := api.GetAudience()
88-
model.Audience = &audience
89-
clientID := api.GetClientId()
90-
model.ClientId = &clientID
91-
groupsClaim := api.GetGroupsClaim()
92-
model.GroupsClaim = &groupsClaim
82+
model.Audience = util.Pointer(api.GetAudience())
83+
model.ClientId = util.Pointer(api.GetClientId())
84+
model.GroupsClaim = util.Pointer(api.GetGroupsClaim())
9385

9486
requestedScopes := api.GetRequestedScopes()
9587
if len(requestedScopes) == 0 && currentModel != nil && len(currentModel.RequestedScopes) > 0 {
9688
requestedScopes = currentModel.RequestedScopes
9789
}
9890
model.RequestedScopes = requestedScopes
9991

100-
userClaim := api.GetUserClaim()
101-
model.UserClaim = &userClaim
92+
model.UserClaim = util.Pointer(api.GetUserClaim())
10293

10394
associatedDomains := api.GetAssociatedDomains()
10495
if len(associatedDomains) == 0 && currentModel != nil && len(currentModel.AssociatedDomains) > 0 {
@@ -113,18 +104,8 @@ func GetFederatedSettingsIdentityProviderModel(api *admin.FederationIdentityProv
113104
}
114105

115106
func ExpandOIDCCreateRequest(model *Model) *admin.FederationOidcIdentityProviderUpdate {
116-
var associatedDomains []string
117-
if model.AssociatedDomains != nil {
118-
associatedDomains = model.AssociatedDomains
119-
} else {
120-
associatedDomains = []string{}
121-
}
122-
var requestedScopes []string
123-
if model.RequestedScopes != nil {
124-
requestedScopes = model.RequestedScopes
125-
} else {
126-
requestedScopes = []string{}
127-
}
107+
associatedDomains := getStringSliceOrEmpty(model.AssociatedDomains)
108+
requestedScopes := getStringSliceOrEmpty(model.RequestedScopes)
128109

129110
return &admin.FederationOidcIdentityProviderUpdate{
130111
Audience: util.Pointer(util.SafeString(model.Audience)),

cfn-resources/federated-settings-identity-provider/cmd/resource/mappings_test.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,18 @@ import (
2222
"go.mongodb.org/atlas-sdk/v20250312012/admin"
2323
)
2424

25+
const (
26+
testIdpID = "test-idp-id"
27+
testOktaID = "test-okta-id"
28+
)
29+
2530
func TestGetFederatedSettingsIdentityProviderModel_SAML(t *testing.T) {
2631
protocol := "SAML"
2732
displayName := "saml-name"
2833
issuerURI := "https://issuer.example.com"
2934
api := &admin.FederationIdentityProvider{
30-
Id: "idp-1",
31-
OktaIdpId: "okta-1",
35+
Id: testIdpID,
36+
OktaIdpId: testOktaID,
3237
Protocol: &protocol,
3338
DisplayName: &displayName,
3439
IssuerUri: &issuerURI,
@@ -42,8 +47,8 @@ func TestGetFederatedSettingsIdentityProviderModel_SAML(t *testing.T) {
4247

4348
model := resource.GetFederatedSettingsIdentityProviderModel(api, &resource.Model{})
4449

45-
assert.Equal(t, "idp-1", *model.IdpId)
46-
assert.Equal(t, "okta-1", *model.OktaIdpId)
50+
assert.Equal(t, testIdpID, *model.IdpId)
51+
assert.Equal(t, testOktaID, *model.OktaIdpId)
4752
assert.Equal(t, "SAML", *model.Protocol)
4853
assert.Equal(t, "saml-name", *model.Name)
4954
assert.Equal(t, "https://issuer.example.com", *model.IssuerUri)
@@ -63,8 +68,8 @@ func TestGetFederatedSettingsIdentityProviderModel_OIDC(t *testing.T) {
6368
displayName := "oidc-name"
6469
issuerURI := "https://issuer.oidc.example.com"
6570
api := &admin.FederationIdentityProvider{
66-
Id: "idp-2",
67-
OktaIdpId: "okta-2",
71+
Id: testIdpID,
72+
OktaIdpId: testOktaID,
6873
Protocol: &protocol,
6974
DisplayName: &displayName,
7075
IssuerUri: &issuerURI,
@@ -78,8 +83,8 @@ func TestGetFederatedSettingsIdentityProviderModel_OIDC(t *testing.T) {
7883

7984
model := resource.GetFederatedSettingsIdentityProviderModel(api, &resource.Model{})
8085

81-
assert.Equal(t, "idp-2", *model.IdpId)
82-
assert.Equal(t, "okta-2", *model.OktaIdpId)
86+
assert.Equal(t, testIdpID, *model.IdpId)
87+
assert.Equal(t, testOktaID, *model.OktaIdpId)
8388
assert.Equal(t, "OIDC", *model.Protocol)
8489
assert.Equal(t, "oidc-name", *model.Name)
8590
assert.Equal(t, "https://issuer.oidc.example.com", *model.IssuerUri)

0 commit comments

Comments
 (0)