gotosocial/internal/gtsmodel
kim 33aee1b1e9
[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>
2023-02-03 20:03:05 +00:00
..
account.go [chore] reformat GetAccount() functionality, support updating accounts based on last_fetch (#1411) 2023-02-03 20:03:05 +00:00
admin.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
application.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
block.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
client.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
domainblock.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
emaildomainblock.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
emoji.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
emojicategory.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
follow.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
followrequest.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
instance.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
mediaattachment.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
mention.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
notification.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
README.md Prune unnecessary nullzeros, fixup db tags (#200) 2021-09-10 10:08:21 +02:00
report.go [feature] Implement Report database model and utility functions (#1310) 2023-01-10 14:19:05 +00:00
routersession.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
status.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
statusbookmark.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
statusfave.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
statusmute.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
tag.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
token.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
tombstone.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00
user.go [chore] Update/add license headers for 2023 (#1304) 2023-01-05 12:43:00 +01:00

A note on when we should set data structures linked to objects in the database to use the bun nullzero tag -- this should only be done if the member type is a pointer, or if the this primitive type is literally invalid with an empty value (e.g. media IDs which when empty signifies a null database value, compared to say an account note which when empty could mean either an empty note OR null database value).

Obviously it is a little more complex than this in practice, but keep it in mind!