Update module name following host switch, impl masto person from ap
object
This commit is contained in:
parent
5aec50990e
commit
2bee4c5fb5
3 changed files with 134 additions and 3 deletions
|
@ -3,7 +3,7 @@ package general
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"gitlab.com/mstarongitlab/goap"
|
"git.mstar.dev/mstar/goap"
|
||||||
)
|
)
|
||||||
|
|
||||||
type CreateEvent struct {
|
type CreateEvent struct {
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -1,4 +1,4 @@
|
||||||
module gitlab.com/mstarongitlab/goap
|
module git.mstar.dev/mstar/goap
|
||||||
|
|
||||||
go 1.22.5
|
go 1.22.5
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package mastodon
|
||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"gitlab.com/mstarongitlab/goap"
|
"git.mstar.dev/mstar/goap"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Person struct {
|
type Person struct {
|
||||||
|
@ -32,3 +32,134 @@ type Person struct {
|
||||||
Tags []goap.Tag
|
Tags []goap.Tag
|
||||||
Url string
|
Url string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func PersonFromChain(base goap.BaseApChain) (*Person, error) {
|
||||||
|
id, ok := goap.FindAttribute[*goap.UDIdData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ID}
|
||||||
|
}
|
||||||
|
devices, ok := goap.FindAttribute[*goap.MastoDevicesData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_MASTO_DEVICES}
|
||||||
|
}
|
||||||
|
discoverable, ok := goap.FindAttribute[*goap.MastoDiscoverableData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_MASTO_DISCOVERABLE}
|
||||||
|
}
|
||||||
|
|
||||||
|
featured, ok := goap.FindAttribute[*goap.MastoFeaturedData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_MASTO_FEATURED}
|
||||||
|
}
|
||||||
|
featuredTags, ok := goap.FindAttribute[*goap.MastoFeaturedTagsData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_MASTO_FEATURED_TAGS}
|
||||||
|
}
|
||||||
|
Indexable, ok := goap.FindAttribute[*goap.MastoIndexableData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_MASTO_INDEXABLE}
|
||||||
|
}
|
||||||
|
memorial, ok := goap.FindAttribute[*goap.MastoMemorialData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_MASTO_MEMORIAL}
|
||||||
|
}
|
||||||
|
inbox, ok := goap.FindAttribute[*goap.W3InboxData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_W3_INBOX}
|
||||||
|
}
|
||||||
|
publicKey, ok := goap.FindAttribute[*goap.W3SecurityPublicKeyData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_W3_SECURITY_PUBLICKEY}
|
||||||
|
}
|
||||||
|
alsoKnownAs, ok := goap.FindAttribute[*goap.ASAlsoKnownAsData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_ALSOKNOWNAS}
|
||||||
|
}
|
||||||
|
attachments, ok := goap.FindAttribute[*goap.ASAttachmentsData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_ATTACHMENTS}
|
||||||
|
}
|
||||||
|
endpoints, ok := goap.FindAttribute[*goap.ASEndpointsData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_ENDPOINTS}
|
||||||
|
}
|
||||||
|
followers, ok := goap.FindAttribute[*goap.ASFollowersData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_FOLLOWERS}
|
||||||
|
}
|
||||||
|
following, ok := goap.FindAttribute[*goap.ASFollowingData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_FOLLOWING}
|
||||||
|
}
|
||||||
|
icon, ok := goap.FindAttribute[*goap.ASIconData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_ICON}
|
||||||
|
}
|
||||||
|
image, ok := goap.FindAttribute[*goap.ASImageData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_IMAGE_ATTRIBUTE}
|
||||||
|
}
|
||||||
|
approvesFollowers, ok := goap.FindAttribute[*goap.ASRestrictedFollowData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_RESTRICTED_FOLLOW}
|
||||||
|
}
|
||||||
|
name, ok := goap.FindAttribute[*goap.ASNameData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_NAME}
|
||||||
|
}
|
||||||
|
outbox, ok := goap.FindAttribute[*goap.ASOutboxData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_OUTBOX}
|
||||||
|
}
|
||||||
|
preferredUsername, ok := goap.FindAttribute[*goap.ASPreferredNameData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_PREFFEREDUSERNAME}
|
||||||
|
}
|
||||||
|
published, ok := goap.FindAttribute[*goap.ASPublishedData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_PUBLISHED}
|
||||||
|
}
|
||||||
|
summary, ok := goap.FindAttribute[*goap.ASSummaryData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_SUMMARY}
|
||||||
|
}
|
||||||
|
tags, ok := goap.FindAttribute[*goap.ASTagData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_TAG}
|
||||||
|
}
|
||||||
|
url, ok := goap.FindAttribute[*goap.ASUrlData](base)
|
||||||
|
if !ok {
|
||||||
|
return nil, goap.NoRequiredFieldError{FieldName: goap.KEY_ACTIVITYSTREAMS_URL}
|
||||||
|
}
|
||||||
|
|
||||||
|
return &Person{
|
||||||
|
Id: id.Id,
|
||||||
|
Devices: devices.Id,
|
||||||
|
Discoverable: discoverable.Value.Value,
|
||||||
|
Featured: featured.Id,
|
||||||
|
FeaturedTags: featuredTags.Id,
|
||||||
|
Indexable: Indexable.Value.Value,
|
||||||
|
Memorial: memorial.Value.Value,
|
||||||
|
Inbox: inbox.Id,
|
||||||
|
PublicKey: goap.PublicKey{
|
||||||
|
Id: publicKey.Id,
|
||||||
|
Owner: publicKey.Owner,
|
||||||
|
Pem: publicKey.Key,
|
||||||
|
},
|
||||||
|
AlsoKnownAs: alsoKnownAs.Id,
|
||||||
|
Attachments: attachments.Attachments,
|
||||||
|
Endpoints: endpoints.Endpoints,
|
||||||
|
Followers: followers.Id,
|
||||||
|
Following: following.Id,
|
||||||
|
Icon: icon.Media,
|
||||||
|
Image: image.Media,
|
||||||
|
ApprovesFollowers: approvesFollowers.Value.Value,
|
||||||
|
Name: name.Value.Value,
|
||||||
|
Outbox: outbox.Id,
|
||||||
|
PreferredUsername: preferredUsername.Value.Value,
|
||||||
|
Published: published.Timestamp,
|
||||||
|
Summary: summary.Value.Value,
|
||||||
|
Tags: tags.Tags,
|
||||||
|
Url: url.Id,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue