mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2024-11-23 04:43:13 +00:00
7b1ccbd65a
* improved server shutdown with more precise shutdown of modules + deferring of ALL of it * move delivery and workers into separate files * add worker task model and Serialize() / Deserialize() methods for message types * start adding message serialize / deserialize tests * start adding test cases * update body rewinding to rely on standard library mechanism of r.GetBody() * remove request rewinding (http.Client{} should already handle this) * standard library already handles rewinding * improved code comment * move the newPOST() function contents to prepare(), fits better with current API * add Serialize() / Deserialize() implementations for Delivery{} type * finish writing FromClientAPI sserialize / deserialize tests * start adding FromFediAPI{} serialize / deserialize test cases * fix FromFediAPI{} tests * add tests for delivery message type * fix repeat code * missing license header * use testrig status and accounts for marshal / unmarshaling tests * add a specific test for checking account RSA keys are preserved |
||
---|---|---|
.. | ||
account.go | ||
accountnote.go | ||
accountsettings.go | ||
accountstats.go | ||
adminaction.go | ||
application.go | ||
block.go | ||
client.go | ||
domainallow.go | ||
domainblock.go | ||
domainpermission.go | ||
emaildomainblock.go | ||
emoji.go | ||
emojicategory.go | ||
filter.go | ||
follow.go | ||
followrequest.go | ||
headerfilter.go | ||
instance.go | ||
list.go | ||
marker.go | ||
mediaattachment.go | ||
mention.go | ||
move.go | ||
notification.go | ||
poll.go | ||
README.md | ||
report.go | ||
routersession.go | ||
rule.go | ||
status.go | ||
statusbookmark.go | ||
statusfave.go | ||
statusmute.go | ||
tag.go | ||
thread.go | ||
threadmute.go | ||
token.go | ||
tombstone.go | ||
user.go | ||
usermute.go | ||
workertask.go |
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!