| 204 | } |
| 205 | |
| 206 | func (c *cli) fetchTemplateData(ctx context.Context) (*TemplateData, error) { |
| 207 | group, ctx := errgroup.WithContext(ctx) |
| 208 | group.Go(func() (err error) { |
| 209 | return ensureCustomDomainIsEnabled(ctx, c.api) |
| 210 | }) |
| 211 | |
| 212 | var promptSettings *management.Prompt |
| 213 | group.Go(func() (err error) { |
| 214 | promptSettings, err = c.api.Prompt.Read(ctx) |
| 215 | return err |
| 216 | }) |
| 217 | |
| 218 | var clientList *management.ClientList |
| 219 | group.Go(func() (err error) { |
| 220 | clientList, err = c.api.Client.List(ctx, management.PerPage(100)) // Capping the clients retrieved to 100 for now. |
| 221 | return err |
| 222 | }) |
| 223 | |
| 224 | var brandingSettings *management.Branding |
| 225 | group.Go(func() (err error) { |
| 226 | brandingSettings = fetchBrandingSettingsOrUseDefaults(ctx, c.api) |
| 227 | return nil |
| 228 | }) |
| 229 | |
| 230 | var currentTemplate *management.BrandingUniversalLogin |
| 231 | group.Go(func() (err error) { |
| 232 | currentTemplate = fetchBrandingTemplateOrUseEmpty(ctx, c.api) |
| 233 | return nil |
| 234 | }) |
| 235 | |
| 236 | var tenant *management.Tenant |
| 237 | group.Go(func() (err error) { |
| 238 | tenant, err = c.api.Tenant.Read(ctx) |
| 239 | return err |
| 240 | }) |
| 241 | |
| 242 | if err := group.Wait(); err != nil { |
| 243 | return nil, err |
| 244 | } |
| 245 | |
| 246 | templateData := &TemplateData{ |
| 247 | PrimaryColor: brandingSettings.GetColors().GetPrimary(), |
| 248 | BackgroundColor: brandingSettings.GetColors().GetPageBackground(), |
| 249 | LogoURL: brandingSettings.GetLogoURL(), |
| 250 | TenantName: tenant.GetFriendlyName(), |
| 251 | Body: currentTemplate.GetBody(), |
| 252 | Experience: promptSettings.UniversalLoginExperience, |
| 253 | } |
| 254 | |
| 255 | for _, client := range clientList.Clients { |
| 256 | templateData.Clients = append(templateData.Clients, ClientData{ |
| 257 | ID: client.GetClientID(), |
| 258 | Name: client.GetName(), |
| 259 | LogoURL: client.GetLogoURI(), |
| 260 | }) |
| 261 | } |
| 262 | |
| 263 | return templateData, nil |