summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltofrontend.go
diff options
context:
space:
mode:
authorLibravatar Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com>2021-05-09 14:06:06 +0200
committerLibravatar GitHub <noreply@github.com>2021-05-09 14:06:06 +0200
commit3363e0ebdd2ad8bde458037b82432bc3dd93adde (patch)
tree3b105083f75aa47f3872b588403d9e5cf2f45d14 /internal/typeutils/internaltofrontend.go
parentLetsencrypt (#17) (diff)
downloadgotosocial-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.go30
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 := &gtsmodel.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
+}