summaryrefslogtreecommitdiff
path: root/internal/typeutils
diff options
context:
space:
mode:
Diffstat (limited to 'internal/typeutils')
-rw-r--r--internal/typeutils/astointernal.go7
-rw-r--r--internal/typeutils/astointernal_test.go18
-rw-r--r--internal/typeutils/internaltoas.go4
3 files changed, 24 insertions, 5 deletions
diff --git a/internal/typeutils/astointernal.go b/internal/typeutils/astointernal.go
index a16318df8..887716a69 100644
--- a/internal/typeutils/astointernal.go
+++ b/internal/typeutils/astointernal.go
@@ -105,7 +105,12 @@ func (c *converter) ASRepresentationToAccount(accountable ap.Accountable, update
}
acct.ActorType = accountable.GetTypeName()
- // TODO: locked aka manuallyApprovesFollowers
+ // locked aka manuallyApprovesFollowers
+ acct.Locked = true // assume locked by default
+ maf := accountable.GetActivityStreamsManuallyApprovesFollowers()
+ if maf != nil && maf.IsXMLSchemaBoolean() {
+ acct.Locked = maf.Get()
+ }
// discoverable
// default to false -- take custom value if it's set though
diff --git a/internal/typeutils/astointernal_test.go b/internal/typeutils/astointernal_test.go
index 5b8e30134..1d02dec5a 100644
--- a/internal/typeutils/astointernal_test.go
+++ b/internal/typeutils/astointernal_test.go
@@ -346,14 +346,26 @@ func (suite *ASToInternalTestSuite) SetupTest() {
}
func (suite *ASToInternalTestSuite) TestParsePerson() {
-
testPerson := suite.people["new_person_1"]
acct, err := suite.typeconverter.ASRepresentationToAccount(testPerson, false)
assert.NoError(suite.T(), err)
- fmt.Printf("%+v", acct)
- // TODO: write assertions here, rn we're just eyeballing the output
+ suite.Equal("https://unknown-instance.com/users/brand_new_person", acct.URI)
+ suite.Equal("https://unknown-instance.com/users/brand_new_person/following", acct.FollowingURI)
+ suite.Equal("https://unknown-instance.com/users/brand_new_person/followers", acct.FollowersURI)
+ suite.Equal("https://unknown-instance.com/users/brand_new_person/inbox", acct.InboxURI)
+ suite.Equal("https://unknown-instance.com/users/brand_new_person/outbox", acct.OutboxURI)
+ suite.Equal("https://unknown-instance.com/users/brand_new_person/collections/featured", acct.FeaturedCollectionURI)
+ suite.Equal("brand_new_person", acct.Username)
+ suite.Equal("Geoff Brando New Personson", acct.DisplayName)
+ suite.Equal("hey I'm a new person, your instance hasn't seen me yet uwu", acct.Note)
+ suite.Equal("https://unknown-instance.com/@brand_new_person", acct.URL)
+ suite.True(acct.Discoverable)
+ suite.Equal("https://unknown-instance.com/users/brand_new_person#main-key", acct.PublicKeyURI)
+ suite.Equal("https://unknown-instance.com/media/some_avatar_filename.jpeg", acct.AvatarRemoteURL)
+ suite.Equal("https://unknown-instance.com/media/some_header_filename.jpeg", acct.HeaderRemoteURL)
+ suite.False(acct.Locked)
}
func (suite *ASToInternalTestSuite) TestParseGargron() {
diff --git a/internal/typeutils/internaltoas.go b/internal/typeutils/internaltoas.go
index 11ace9dfa..178567dc6 100644
--- a/internal/typeutils/internaltoas.go
+++ b/internal/typeutils/internaltoas.go
@@ -143,7 +143,9 @@ func (c *converter) AccountToAS(a *gtsmodel.Account) (vocab.ActivityStreamsPerso
// manuallyApprovesFollowers
// Will be shown as a locked account.
- // TODO: NOT IMPLEMENTED **YET** -- this needs to be added as an activitypub extension to https://github.com/go-fed/activity, see https://github.com/go-fed/activity/tree/master/astool
+ manuallyApprovesFollowersProp := streams.NewActivityStreamsManuallyApprovesFollowersProperty()
+ manuallyApprovesFollowersProp.Set(a.Locked)
+ person.SetActivityStreamsManuallyApprovesFollowers(manuallyApprovesFollowersProp)
// discoverable
// Will be shown in the profile directory.