[chore] Harden up boolptr logic on Accounts, warn if not set (#2544)

This commit is contained in:
tobi
2024-01-19 14:02:04 +01:00
committed by GitHub
parent 7ec1e1332e
commit 5ca86b1c57
6 changed files with 208 additions and 38 deletions

View File

@@ -492,18 +492,6 @@ func ExtractFields(i WithAttachment) []*gtsmodel.Field {
return fields
}
// ExtractDiscoverable extracts the Discoverable boolean
// of the given WithDiscoverable interface. Will return
// an error if Discoverable was nil.
func ExtractDiscoverable(i WithDiscoverable) (bool, error) {
discoverableProp := i.GetTootDiscoverable()
if discoverableProp == nil {
return false, gtserror.New("discoverable was nil")
}
return discoverableProp.Get(), nil
}
// ExtractURL extracts the first URI it can find from the
// given WithURL interface, or an error if no URL was set.
// The ID of a type will not work, this function wants a URI

View File

@@ -424,6 +424,8 @@ func SetVotersCount(with WithVotersCount, count int) {
}
// GetDiscoverable returns the boolean contained in the Discoverable property of 'with'.
//
// Returns default 'false' if property unusable or not set.
func GetDiscoverable(with WithDiscoverable) bool {
discoverProp := with.GetTootDiscoverable()
if discoverProp == nil || !discoverProp.IsXMLSchemaBoolean() {
@@ -442,6 +444,27 @@ func SetDiscoverable(with WithDiscoverable, discoverable bool) {
discoverProp.Set(discoverable)
}
// GetManuallyApprovesFollowers returns the boolean contained in the ManuallyApprovesFollowers property of 'with'.
//
// Returns default 'true' if property unusable or not set.
func GetManuallyApprovesFollowers(with WithManuallyApprovesFollowers) bool {
mafProp := with.GetActivityStreamsManuallyApprovesFollowers()
if mafProp == nil || !mafProp.IsXMLSchemaBoolean() {
return true
}
return mafProp.Get()
}
// SetManuallyApprovesFollowers sets the given boolean on the ManuallyApprovesFollowers property of 'with'.
func SetManuallyApprovesFollowers(with WithManuallyApprovesFollowers, manuallyApprovesFollowers bool) {
mafProp := with.GetActivityStreamsManuallyApprovesFollowers()
if mafProp == nil {
mafProp = streams.NewActivityStreamsManuallyApprovesFollowersProperty()
with.SetActivityStreamsManuallyApprovesFollowers(mafProp)
}
mafProp.Set(manuallyApprovesFollowers)
}
func getIRIs[T TypeOrIRI](prop Property[T]) []*url.URL {
if prop == nil || prop.Len() == 0 {
return nil