From 33aee1b1e974e99182a95ce1a05e2be924d19bb2 Mon Sep 17 00:00:00 2001 From: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com> Date: Fri, 3 Feb 2023 20:03:05 +0000 Subject: [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 Co-authored-by: tsmethurst --- internal/validate/account_test.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'internal/validate/account_test.go') diff --git a/internal/validate/account_test.go b/internal/validate/account_test.go index 5303b4126..3c918e1fc 100644 --- a/internal/validate/account_test.go +++ b/internal/validate/account_test.go @@ -66,7 +66,7 @@ func happyAccount() *gtsmodel.Account { StatusFormat: "plain", URI: "http://localhost:8080/users/the_mighty_zork", URL: "http://localhost:8080/@the_mighty_zork", - LastWebfingeredAt: time.Time{}, + FetchedAt: time.Time{}, InboxURI: "http://localhost:8080/users/the_mighty_zork/inbox", OutboxURI: "http://localhost:8080/users/the_mighty_zork/outbox", FollowersURI: "http://localhost:8080/users/the_mighty_zork/followers", @@ -117,14 +117,14 @@ func (suite *AccountValidateTestSuite) TestValidateAccountNoCreatedAt() { suite.NoError(err) } -// LastWebfingeredAt must be defined if remote account +// FetchedAt must be defined if remote account func (suite *AccountValidateTestSuite) TestValidateAccountNoWebfingeredAt() { a := happyAccount() a.Domain = "example.org" - a.LastWebfingeredAt = time.Time{} + a.FetchedAt = time.Time{} err := validate.Struct(*a) - suite.EqualError(err, "Key: 'Account.LastWebfingeredAt' Error:Field validation for 'LastWebfingeredAt' failed on the 'required_with' tag") + suite.EqualError(err, "Key: 'Account.FetchedAt' Error:Field validation for 'FetchedAt' failed on the 'required_with' tag") } // Username must be set @@ -139,7 +139,7 @@ func (suite *AccountValidateTestSuite) TestValidateAccountUsername() { // Domain must be either empty (for local accounts) or proper fqdn (for remote accounts) func (suite *AccountValidateTestSuite) TestValidateAccountDomain() { a := happyAccount() - a.LastWebfingeredAt = time.Now() + a.FetchedAt = time.Now() a.Domain = "" err := validate.Struct(*a) @@ -204,7 +204,7 @@ func (suite *AccountValidateTestSuite) TestValidateAttachmentRemoteURLs() { // Default privacy must be set if account is local func (suite *AccountValidateTestSuite) TestValidatePrivacy() { a := happyAccount() - a.LastWebfingeredAt = time.Now() + a.FetchedAt = time.Now() a.Privacy = "" err := validate.Struct(*a) @@ -261,7 +261,7 @@ func (suite *AccountValidateTestSuite) TestValidateAccountURI() { // ActivityPub URIs must be set on account if it's local func (suite *AccountValidateTestSuite) TestValidateAccountURIs() { a := happyAccount() - a.LastWebfingeredAt = time.Now() + a.FetchedAt = time.Now() a.InboxURI = "invalid-uri" a.OutboxURI = "invalid-uri" @@ -319,7 +319,7 @@ func (suite *AccountValidateTestSuite) TestValidateActorType() { // Private key must be set on local accounts func (suite *AccountValidateTestSuite) TestValidatePrivateKey() { a := happyAccount() - a.LastWebfingeredAt = time.Now() + a.FetchedAt = time.Now() a.PrivateKey = nil err := validate.Struct(*a) -- cgit v1.2.3