mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-14 21:07:31 -06:00
[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... 🙈
---------
Signed-off-by: kim <grufwub@gmail.com>
Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
This commit is contained in:
parent
a59dc855d9
commit
33aee1b1e9
50 changed files with 657 additions and 1159 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue