| 205 | } |
| 206 | |
| 207 | func (c *Setup) orgAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver) (string, error) { |
| 208 | if c.OrgAPID != "" { |
| 209 | return c.OrgAPID, nil |
| 210 | } |
| 211 | |
| 212 | if cfg.Org.APID != "" { |
| 213 | drv.Activate(ctx, &componentmodels.ConfigVia{ |
| 214 | Config: cfg, |
| 215 | ConfigFetchFn: func(cfg *cli.Config) any { return cfg.Org.APID }, |
| 216 | Flag: "--org", |
| 217 | Singular: "organization", |
| 218 | }) |
| 219 | return cfg.Org.APID, nil |
| 220 | } |
| 221 | |
| 222 | selector := &component.Selector[api.Organization]{ |
| 223 | Prompt: "Which organization's lcl.host local development environment do you want to setup?", |
| 224 | Flag: "--org", |
| 225 | |
| 226 | Creatable: true, |
| 227 | |
| 228 | Fetcher: &component.Fetcher[api.Organization]{ |
| 229 | FetchFn: func() ([]api.Organization, error) { return c.anc.GetOrgs(ctx) }, |
| 230 | }, |
| 231 | } |
| 232 | |
| 233 | selectedOrg, err := selector.Choice(ctx, drv) |
| 234 | if err != nil { |
| 235 | return "", err |
| 236 | } |
| 237 | if selectedOrg == nil || (*selectedOrg == api.Organization{}) { |
| 238 | drv.Activate(ctx, &orgmodels.OrgCreateHeader{}) |
| 239 | drv.Activate(ctx, &orgmodels.OrgCreateHint{}) |
| 240 | defer drv.Send(ui.HideModelsMsg{ |
| 241 | Models: []string{"OrgCreateHeader", "OrgCreateHint"}, |
| 242 | }) |
| 243 | |
| 244 | cmdOrgCreate := &org.Create{ |
| 245 | Anc: c.anc, |
| 246 | } |
| 247 | |
| 248 | org, err := cmdOrgCreate.Perform(ctx, drv) |
| 249 | if err != nil { |
| 250 | return "", err |
| 251 | } |
| 252 | |
| 253 | return org.Apid, nil |
| 254 | } |
| 255 | return selectedOrg.Apid, nil |
| 256 | |
| 257 | } |
| 258 | |
| 259 | func (c *Setup) realmAPID(ctx context.Context, cfg *cli.Config, drv *ui.Driver, orgAPID string) (string, error) { |
| 260 | if c.RealmAPID != "" { |