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 (
|
||||
"time"
|
||||
|
||||
"gitlab.com/mstarongitlab/goap"
|
||||
"git.mstar.dev/mstar/goap"
|
||||
)
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ package mastodon
|
|||
import (
|
||||
"time"
|
||||
|
||||
"gitlab.com/mstarongitlab/goap"
|
||||
"git.mstar.dev/mstar/goap"
|
||||
)
|
||||
|
||||
type Person struct {
|
||||
|
@ -32,3 +32,134 @@ type Person struct {
|
|||
Tags []goap.Tag
|
||||
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