@@ -11,15 +11,13 @@ import (
1111
1212func newBranding () * schema.Resource {
1313 return & schema.Resource {
14-
1514 Create : createBranding ,
1615 Read : readBranding ,
1716 Update : updateBranding ,
1817 Delete : deleteBranding ,
1918 Importer : & schema.ResourceImporter {
2019 State : schema .ImportStatePassthrough ,
2120 },
22-
2321 Schema : map [string ]* schema.Schema {
2422 "colors" : {
2523 Type : schema .TypeList ,
@@ -89,8 +87,7 @@ func createBranding(d *schema.ResourceData, m interface{}) error {
8987
9088func readBranding (d * schema.ResourceData , m interface {}) error {
9189 api := m .(* management.Management )
92- b , err := api .Branding .Read ()
93-
90+ branding , err := api .Branding .Read ()
9491 if err != nil {
9592 if mErr , ok := err .(management.Error ); ok {
9693 if mErr .Status () == http .StatusNotFound {
@@ -101,56 +98,53 @@ func readBranding(d *schema.ResourceData, m interface{}) error {
10198 return err
10299 }
103100
104- d .Set ("favicon_url" , b .FaviconURL )
105- d .Set ("logo_url" , b .LogoURL )
106- d .Set ("colors" , flattenBrandingColors (b .Colors ))
107- d .Set ("font" , flattenBrandingFont (b .Font ))
101+ d .Set ("favicon_url" , branding .FaviconURL )
102+ d .Set ("logo_url" , branding .LogoURL )
103+ d .Set ("colors" , flattenBrandingColors (branding .Colors ))
104+ d .Set ("font" , flattenBrandingFont (branding .Font ))
108105
109- t , err := api .Tenant .Read ()
106+ tenant , err := api .Tenant .Read ()
110107 if err != nil {
111108 return err
112109 }
113110
114- if t .Flags .EnableCustomDomainInEmails != nil && * t .Flags .EnableCustomDomainInEmails {
115- ul , err := api . Branding . UniversalLogin ()
116- if err != nil {
111+ if tenant .Flags .EnableCustomDomainInEmails != nil && * tenant .Flags .EnableCustomDomainInEmails {
112+ if err := setUniversalLogin ( d , m ); err != nil {
113+ d . SetId ( "" )
117114 return err
118115 }
119-
120- d .Set ("universal_login" , flattenBrandingUniversalLogin (ul ))
121116 }
122117
123118 return nil
124119}
125120
126121func updateBranding (d * schema.ResourceData , m interface {}) error {
127- b := buildBranding (d )
128- ul := buildBrandingUniversalLogin (d )
129122 api := m .(* management.Management )
130- err := api .Branding .Update (b )
131- if err != nil {
123+
124+ branding := buildBranding (d )
125+ if err := api .Branding .Update (branding ); err != nil {
132126 return err
133127 }
134128
135- if ul . GetBody () != "" {
136- err = api . Branding . SetUniversalLogin ( ul )
137- if err != nil {
129+ universalLogin := buildBrandingUniversalLogin ( d )
130+ if universalLogin . GetBody () != "" {
131+ if err := api . Branding . SetUniversalLogin ( universalLogin ); err != nil {
138132 return err
139133 }
140134 }
135+
141136 return readBranding (d , m )
142137}
143138
144139func deleteBranding (d * schema.ResourceData , m interface {}) error {
145140 api := m .(* management.Management )
146- t , err := api .Tenant .Read ()
141+ tenant , err := api .Tenant .Read ()
147142 if err != nil {
148143 return err
149144 }
150145
151- if t .Flags .EnableCustomDomainInEmails != nil && * t .Flags .EnableCustomDomainInEmails {
152- err = api .Branding .DeleteUniversalLogin ()
153- if err != nil {
146+ if tenant .Flags .EnableCustomDomainInEmails != nil && * tenant .Flags .EnableCustomDomainInEmails {
147+ if err = api .Branding .DeleteUniversalLogin (); err != nil {
154148 if mErr , ok := err .(management.Error ); ok {
155149 if mErr .Status () == http .StatusNotFound {
156150 d .SetId ("" )
@@ -164,35 +158,51 @@ func deleteBranding(d *schema.ResourceData, m interface{}) error {
164158}
165159
166160func buildBranding (d * schema.ResourceData ) * management.Branding {
167- b := & management.Branding {
161+ branding := & management.Branding {
168162 FaviconURL : String (d , "favicon_url" ),
169163 LogoURL : String (d , "logo_url" ),
170164 }
171165
172166 List (d , "colors" ).Elem (func (d ResourceData ) {
173- b .Colors = & management.BrandingColors {
167+ branding .Colors = & management.BrandingColors {
174168 PageBackground : String (d , "page_background" ),
175169 Primary : String (d , "primary" ),
176170 }
177171 })
178172
179173 List (d , "font" ).Elem (func (d ResourceData ) {
180- b .Font = & management.BrandingFont {
174+ branding .Font = & management.BrandingFont {
181175 URL : String (d , "url" ),
182176 }
183177 })
184178
185- return b
179+ return branding
186180}
187181
188182func buildBrandingUniversalLogin (d * schema.ResourceData ) * management.BrandingUniversalLogin {
189- b := & management.BrandingUniversalLogin {}
183+ universalLogin := & management.BrandingUniversalLogin {}
190184
191185 List (d , "universal_login" ).Elem (func (d ResourceData ) {
192- b .Body = String (d , "body" )
186+ universalLogin .Body = String (d , "body" )
193187 })
194188
195- return b
189+ return universalLogin
190+ }
191+
192+ func setUniversalLogin (d * schema.ResourceData , m interface {}) error {
193+ api := m .(* management.Management )
194+ universalLogin , err := api .Branding .UniversalLogin ()
195+ if err != nil {
196+ if mErr , ok := err .(management.Error ); ok {
197+ if mErr .Status () == http .StatusNotFound {
198+ return nil
199+ }
200+ }
201+ return err
202+ }
203+
204+ d .Set ("universal_login" , flattenBrandingUniversalLogin (universalLogin ))
205+ return nil
196206}
197207
198208func flattenBrandingColors (brandingColors * management.BrandingColors ) []interface {} {
0 commit comments