diff options
author | 2021-05-09 14:06:06 +0200 | |
---|---|---|
committer | 2021-05-09 14:06:06 +0200 | |
commit | 3363e0ebdd2ad8bde458037b82432bc3dd93adde (patch) | |
tree | 3b105083f75aa47f3872b588403d9e5cf2f45d14 /internal/typeutils/internaltofrontend.go | |
parent | Letsencrypt (#17) (diff) | |
download | gotosocial-3363e0ebdd2ad8bde458037b82432bc3dd93adde.tar.xz |
add api/v1/instance info handler + instance model (#18)
Diffstat (limited to 'internal/typeutils/internaltofrontend.go')
-rw-r--r-- | internal/typeutils/internaltofrontend.go | 30 |
1 files changed, 30 insertions, 0 deletions
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 +} |