From 3363e0ebdd2ad8bde458037b82432bc3dd93adde Mon Sep 17 00:00:00 2001 From: Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com> Date: Sun, 9 May 2021 14:06:06 +0200 Subject: add api/v1/instance info handler + instance model (#18) --- internal/typeutils/internaltofrontend.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'internal/typeutils/internaltofrontend.go') diff --git a/internal/typeutils/internaltofrontend.go b/internal/typeutils/internaltofrontend.go index 66c21b98a..6b0c743ff 100644 --- a/internal/typeutils/internaltofrontend.go +++ b/internal/typeutils/internaltofrontend.go @@ -551,3 +551,33 @@ func (c *converter) VisToMasto(m gtsmodel.Visibility) model.Visibility { } return "" } + +func (c *converter) InstanceToMasto(i *gtsmodel.Instance) (*model.Instance, error) { + mi := &model.Instance{ + URI: i.URI, + Title: i.Title, + Description: i.Description, + ShortDescription: i.ShortDescription, + Email: i.ContactEmail, + } + + if i.Domain == c.config.Host { + mi.Registrations = c.config.AccountsConfig.OpenRegistration + mi.ApprovalRequired = c.config.AccountsConfig.RequireApproval + mi.InvitesEnabled = false // TODO + mi.MaxTootChars = uint(c.config.StatusesConfig.MaxChars) + } + + // contact account is optional but let's try to get it + if i.ContactAccountID != "" { + ia := >smodel.Account{} + if err := c.db.GetByID(i.ContactAccountID, ia); err == nil { + ma, err := c.AccountToMastoPublic(ia) + if err == nil { + mi.ContactAccount = ma + } + } + } + + return mi, nil +} -- cgit v1.2.3