[feature] Allow delivery to sharedInboxes where possible (#847)

* update Activity

* add instance-deliver-to-shared-inboxes setting

* update activity version again

* add SharedInboxURI field to accounts

* serdes for endpoints/sharedInbox

* deliver to sharedInbox if one is available

* update tests

* only assign shared inbox if shared domain

* look for shared inbox if currently nil

* go fmt

* finger to get params.RemoteAccountID if necessary

* make comments clearer

* compare dns more consistently
This commit is contained in:
tobi
2022-09-23 21:27:35 +02:00
committed by GitHub
parent eb1bb8b1b3
commit 69a193dae5
69 changed files with 2212 additions and 32 deletions

View File

@@ -63,6 +63,27 @@ func (suite *InboxTestSuite) TestInboxesForAccountIRI() {
suite.Contains(asStrings, suite.testAccounts["local_account_1"].InboxURI)
}
func (suite *InboxTestSuite) TestInboxesForAccountIRIWithSharedInbox() {
ctx := context.Background()
testAccount := suite.testAccounts["local_account_1"]
sharedInbox := "http://some-inbox-iri/weeeeeeeeeeeee"
testAccount.SharedInboxURI = &sharedInbox
if _, err := suite.db.UpdateAccount(ctx, testAccount); err != nil {
suite.FailNow("error updating account")
}
inboxIRIs, err := suite.federatingDB.InboxesForIRI(ctx, testrig.URLMustParse(testAccount.URI))
suite.NoError(err)
asStrings := []string{}
for _, i := range inboxIRIs {
asStrings = append(asStrings, i.String())
}
suite.Len(asStrings, 1)
suite.Contains(asStrings, "http://some-inbox-iri/weeeeeeeeeeeee")
}
func TestInboxTestSuite(t *testing.T) {
suite.Run(t, &InboxTestSuite{})
}