github.com/Redstoneguy129/cli@v0.0.0-20230211220159-15dca4e91917/internal/orgs/list/list.go (about) 1 package list 2 3 import ( 4 "context" 5 "errors" 6 "fmt" 7 "strings" 8 9 "github.com/Redstoneguy129/cli/internal/utils" 10 "github.com/charmbracelet/glamour" 11 "github.com/spf13/afero" 12 ) 13 14 type Organization struct { 15 Id string `json:"id"` 16 Name string `json:"name"` 17 } 18 19 func Run(ctx context.Context, fsys afero.Fs) error { 20 resp, err := utils.GetSupabase().GetOrganizationsWithResponse(ctx) 21 if err != nil { 22 return err 23 } 24 25 if resp.JSON200 == nil { 26 return errors.New("Unexpected error retrieving organizations: " + string(resp.Body)) 27 } 28 29 table := `|ID|NAME| 30 |-|-| 31 ` 32 for _, org := range *resp.JSON200 { 33 table += fmt.Sprintf("|`%s`|`%s`|\n", org.Id, strings.ReplaceAll(org.Name, "|", "\\|")) 34 } 35 36 r, err := glamour.NewTermRenderer( 37 glamour.WithAutoStyle(), 38 glamour.WithWordWrap(-1), 39 ) 40 if err != nil { 41 return err 42 } 43 out, err := r.Render(table) 44 if err != nil { 45 return err 46 } 47 fmt.Print(out) 48 49 return nil 50 }