checkpoint: printer now posts instance info

This commit is contained in:
Dan Anglin 2024-06-17 02:00:06 +01:00
parent 02e96bd528
commit 1180de5114
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
4 changed files with 42 additions and 54 deletions

View file

@ -220,13 +220,13 @@ func (c *CreateExecutor) createStatus(gtsClient *client.Client) error {
form.Poll = &poll form.Poll = &poll
} }
_, err = gtsClient.CreateStatus(form) status, err := gtsClient.CreateStatus(form)
if err != nil { if err != nil {
return fmt.Errorf("unable to create the status: %w", err) return fmt.Errorf("unable to create the status: %w", err)
} }
c.printer.PrintSuccess("Successfully created the following status:") c.printer.PrintSuccess("Successfully created the following status:")
//utilities.Display(status, *c.topLevelFlags.NoColor, c.topLevelFlags.Pager) c.printer.PrintStatus(status)
return nil return nil
} }

View file

@ -99,7 +99,7 @@ func (s *ShowExecutor) showInstance(gtsClient *client.Client) error {
return fmt.Errorf("unable to retrieve the instance details: %w", err) return fmt.Errorf("unable to retrieve the instance details: %w", err)
} }
utilities.Display(instance, false, "") s.printer.PrintInstance(instance)
return nil return nil
} }

View file

@ -4,12 +4,6 @@
package model package model
import (
"fmt"
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
)
type InstanceV2 struct { type InstanceV2 struct {
AccountDomain string `json:"account_domain"` AccountDomain string `json:"account_domain"`
Configuration InstanceConfiguration `json:"configuration"` Configuration InstanceConfiguration `json:"configuration"`
@ -116,48 +110,3 @@ type InstanceV2Usage struct {
type InstanceV2Users struct { type InstanceV2Users struct {
ActiveMonth int `json:"active_month"` ActiveMonth int `json:"active_month"`
} }
func (i InstanceV2) Display(noColor bool) string {
format := `
%s
%s
%s
%s
%s
%s
%s
%s
%s
Running GoToSocial %s
%s
%s %s
%s %s
%s %s
`
return fmt.Sprintf(
format,
utilities.HeaderFormat(noColor, "INSTANCE TITLE:"),
i.Title,
utilities.HeaderFormat(noColor, "INSTANCE DESCRIPTION:"),
utilities.WrapLines(i.DescriptionText, "\n ", 80),
utilities.HeaderFormat(noColor, "DOMAIN:"),
i.Domain,
utilities.HeaderFormat(noColor, "TERMS AND CONDITIONS:"),
utilities.WrapLines(i.TermsText, "\n ", 80),
utilities.HeaderFormat(noColor, "VERSION:"),
i.Version,
utilities.HeaderFormat(noColor, "CONTACT:"),
utilities.FieldFormat(noColor, "Name:"),
i.Contact.Account.DisplayName,
utilities.FieldFormat(noColor, "Username:"),
i.Contact.Account.Acct,
utilities.FieldFormat(noColor, "Email:"),
i.Contact.Email,
)
}

View file

@ -0,0 +1,39 @@
package printer
import (
"strings"
"codeflow.dananglin.me.uk/apollo/enbas/internal/model"
"codeflow.dananglin.me.uk/apollo/enbas/internal/utilities"
)
func (p Printer) PrintInstance(instance model.InstanceV2) {
var builder strings.Builder
builder.WriteString("\n" + p.headerFormat("INSTANCE TITLE:"))
builder.WriteString("\n" + instance.Title)
builder.WriteString("\n\n" + p.headerFormat("INSTANCE DESCRIPTION:"))
builder.WriteString("\n" + utilities.WrapLines(instance.DescriptionText, "\n", p.maxTerminalWidth))
builder.WriteString("\n\n" + p.headerFormat("DOMAIN:"))
builder.WriteString("\n" + instance.Domain)
builder.WriteString("\n\n" + p.headerFormat("TERMS AND CONDITIONS:"))
builder.WriteString("\n" + utilities.WrapLines(instance.TermsText, "\n ", p.maxTerminalWidth))
builder.WriteString("\n\n" + p.headerFormat("VERSION:"))
builder.WriteString("\nRunning GoToSocial " + instance.Version)
builder.WriteString("\n\n" + p.headerFormat("CONTACT:"))
builder.WriteString("\n" + p.fieldFormat("Name:"))
builder.WriteString(" " + instance.Contact.Account.DisplayName)
builder.WriteString("\n" + p.fieldFormat("Username:"))
builder.WriteString(" " + instance.Contact.Account.Acct)
builder.WriteString("\n" + p.fieldFormat("Email:"))
builder.WriteString(" " + instance.Contact.Email)
builder.WriteString("\n\n")
p.print(builder.String())
}