package authimport ( "fmt" "github.com/router-for-me/CLIProxyAPI/v7/internal/interfaces")// ProjectSelectionError indicates that the user must choose a specific project ID.type ProjectSelectionError struct { Email string Projects []interfaces.GCPProjectProjects}func (e *ProjectSelectionError) Error() string { if e == nil { return "cliproxy auth: project selection required" } return fmt.Sprintf("cliproxy auth: project selection required for %s", e.Email)}// ProjectsDisplay returns the projects list for caller presentation.func (e *ProjectSelectionError) ProjectsDisplay() []interfaces.GCPProjectProjects { if e == nil { return nil } return e.Projects}// EmailRequiredError indicates that the calling context must provide an email or alias.type EmailRequiredError struct { Prompt string}func (e *EmailRequiredError) Error() string { if e == nil || e.Prompt == "" { return "cliproxy auth: email is required" } return e.Prompt}
package auth
import (
"fmt"
"github.com/router-for-me/CLIProxyAPI/v7/internal/interfaces"
)
// ProjectSelectionError indicates that the user must choose a specific project ID.
type ProjectSelectionError struct {
Email string
Projects []interfaces.GCPProjectProjects
}
func (e *ProjectSelectionError) Error() string {
if e == nil {
return "cliproxy auth: project selection required"
}
return fmt.Sprintf("cliproxy auth: project selection required for %s", e.Email)
}
// ProjectsDisplay returns the projects list for caller presentation.
func (e *ProjectSelectionError) ProjectsDisplay() []interfaces.GCPProjectProjects {
if e == nil {
return nil
}
return e.Projects
}
// EmailRequiredError indicates that the calling context must provide an email or alias.
type EmailRequiredError struct {
Prompt string
}
func (e *EmailRequiredError) Error() string {
if e == nil || e.Prompt == "" {
return "cliproxy auth: email is required"
}
return e.Prompt
}