MCPcopy Create free account
hub / github.com/auth0/auth0-cli / applyPromptRenderings

Function applyPromptRenderings

internal/cli/acul_dev.go:578–670  ·  view source on GitHub ↗
(ctx context.Context, cli *cli, screenTagMap map[string][]interface{}, debugPrefix string)

Source from the content-addressed store, hash-verified

576}
577
578func applyPromptRenderings(ctx context.Context, cli *cli, screenTagMap map[string][]interface{}, debugPrefix string) error {
579 var updates []*management.PromptRendering
580 for screen, headTags := range screenTagMap {
581 p := management.PromptType(ScreenPromptMap[screen])
582 s := management.ScreenName(screen)
583 updates = append(updates, &management.PromptRendering{
584 Prompt: &p,
585 Screen: &s,
586 RenderingMode: &management.RenderingModeAdvanced,
587 HeadTags: headTags,
588 })
589 }
590
591 if len(updates) == 0 {
592 return fmt.Errorf("no renderings to apply")
593 }
594
595 // Snapshot originals.
596 existing, err := cli.api.Prompt.ListRendering(ctx)
597 if err != nil {
598 return fmt.Errorf("failed to fetch current renderings: %w", err)
599 }
600
601 promptRenderingMap := make(map[string]*management.PromptRendering, len(existing.PromptRenderings))
602 for _, r := range existing.PromptRenderings {
603 if r.Prompt != nil && r.Screen != nil {
604 promptRenderingMap[string(*r.Prompt)+"|"+string(*r.Screen)] = r
605 }
606 }
607
608 originals := make([]*management.PromptRendering, len(updates))
609 for i, u := range updates {
610 originals[i] = promptRenderingMap[string(*u.Prompt)+"|"+string(*u.Screen)]
611 }
612
613 const maxBatch = 20
614 doBatchedPatch := func(list []*management.PromptRendering) error {
615 return cli.api.Prompt.BulkUpdateRendering(ctx,
616 &management.PromptRenderingBulkUpdate{PromptRenderings: list})
617 }
618
619 // --- Batching loop with rollback awareness ---.
620 for i := 0; i < len(updates); i += maxBatch {
621 end := i + maxBatch
622 if end > len(updates) {
623 end = len(updates)
624 }
625
626 if err := doBatchedPatch(updates[i:end]); err != nil {
627 if debugPrefix == "Restoring" {
628 return fmt.Errorf("restore failed: %w", err)
629 }
630
631 if cli.debug {
632 cli.renderer.Errorf("%s batch %d-%d failed: %v", debugPrefix, i+1, end, err)
633 cli.renderer.Infof("%s rollback starting for screens 1-%d...", debugPrefix, i)
634 } else {
635 // Removed the redundant log: cli.renderer.Errorf("patch failed; rolling back...").

Callers 1

watchAndPatchFunction · 0.85

Calls 5

ErrorfMethod · 0.80
InfofMethod · 0.80
WarnfMethod · 0.80
ListRenderingMethod · 0.65
BulkUpdateRenderingMethod · 0.65

Tested by

no test coverage detected