summaryrefslogtreecommitdiff
path: root/internal/typeutils/astointernal.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2023-02-03 20:03:05 +0000
committerLibravatar GitHub <noreply@github.com>2023-02-03 20:03:05 +0000
commit33aee1b1e974e99182a95ce1a05e2be924d19bb2 (patch)
tree1471623039f70325a0b7a1c25dd4fe3afc883970 /internal/typeutils/astointernal.go
parent[feature/frogend] (Mastodon) domain block CSV import (#1390) (diff)
downloadgotosocial-33aee1b1e974e99182a95ce1a05e2be924d19bb2.tar.xz
[chore] reformat GetAccount() functionality, support updating accounts based on last_fetch (#1411)
* reformat GetAccount() functionality, and add UpdateAccount() function. * use fetched_at instead of last_webfingered_at * catch local "not found" errors. small formatting / error string changes * remove now unused error type * return nil when wrapping nil error * update expected error messages * return correct url for foss satan webfinger * add AP model for Some_User * normalize local domain * return notretrievable where appropriate * expose NewErrNotRetrievable * ensure webfinger for new accounts searched by uri * update local account short circuit * allow enrich to fail for already-known accounts * remove unused LastWebfingeredAt * expose test maps on mock http client * update Update test * reformat GetAccount() functionality, and add UpdateAccount() function. * use fetched_at instead of last_webfingered_at * catch local "not found" errors. small formatting / error string changes * remove nil error checks (we shouldn't be passing nil errors to newError() initializers) * remove mutex unlock on transport init fail (it hasn't yet been locked!) * woops add back the error wrapping to use ErrNotRetrievable * caches were never being started... :see_no_evil: --------- Signed-off-by: kim <grufwub@gmail.com> Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
Diffstat (limited to 'internal/typeutils/astointernal.go')
-rw-r--r--internal/typeutils/astointernal.go30
1 files changed, 7 insertions, 23 deletions
diff --git a/internal/typeutils/astointernal.go b/internal/typeutils/astointernal.go
index 7df2a138e..fff9c807a 100644
--- a/internal/typeutils/astointernal.go
+++ b/internal/typeutils/astointernal.go
@@ -33,7 +33,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/uris"
)
-func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable ap.Accountable, accountDomain string, update bool) (*gtsmodel.Account, error) {
+func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable ap.Accountable, accountDomain string) (*gtsmodel.Account, error) {
// first check if we actually already know this account
uriProp := accountable.GetJSONLDId()
if uriProp == nil || !uriProp.IsIRI() {
@@ -41,18 +41,6 @@ func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable a
}
uri := uriProp.GetIRI()
- if !update {
- acct, err := c.db.GetAccountByURI(ctx, uri.String())
- if err == nil {
- // we already know this account so we can skip generating it
- return acct, nil
- }
- if err != db.ErrNoEntries {
- // we don't know the account and there's been a real error
- return nil, fmt.Errorf("error getting account with uri %s from the database: %s", uri.String(), err)
- }
- }
-
// we don't know the account, or we're being told to update it, so we need to generate it from the person -- at least we already have the URI!
acct := &gtsmodel.Account{}
acct.URI = uri.String()
@@ -169,16 +157,12 @@ func (c *converter) ASRepresentationToAccount(ctx context.Context, accountable a
acct.InboxURI = accountable.GetActivityStreamsInbox().GetIRI().String()
}
- // SharedInboxURI
- if sharedInboxURI := ap.ExtractSharedInbox(accountable); sharedInboxURI != nil {
- var sharedInbox string
-
- // only trust shared inbox if it has at least two domains,
- // from the right, in common with the domain of the account
- if dns.CompareDomainName(acct.Domain, sharedInboxURI.Host) >= 2 {
- sharedInbox = sharedInboxURI.String()
- }
-
+ // SharedInboxURI:
+ // only trust shared inbox if it has at least two domains,
+ // from the right, in common with the domain of the account
+ if sharedInboxURI := ap.ExtractSharedInbox(accountable); // nocollapse
+ sharedInboxURI != nil && dns.CompareDomainName(acct.Domain, sharedInboxURI.Host) >= 2 {
+ sharedInbox := sharedInboxURI.String()
acct.SharedInboxURI = &sharedInbox
}