diff options
author | Julio Capote <jcapote@gmail.com> | 2022-12-31 03:02:43 +0000 |
---|---|---|
committer | Julio Capote <jcapote@gmail.com> | 2022-12-31 03:02:43 +0000 |
commit | 9d870999909d533cc15fbeb8a5a41d7192473a49 (patch) | |
tree | 0d3809d8fb3e5217e913c5cc6752789cf1207e69 /views/outbox.go | |
parent | c500a2be38afcbb5688537d97c7c3ee30a57dba4 (diff) | |
download | communique-9d870999909d533cc15fbeb8a5a41d7192473a49.tar.gz |
switch to storing encoded structs
Diffstat (limited to 'views/outbox.go')
-rw-r--r-- | views/outbox.go | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/views/outbox.go b/views/outbox.go index 88f88c2..7ea4ace 100644 --- a/views/outbox.go +++ b/views/outbox.go @@ -1,6 +1,8 @@ package views import ( + "net/url" + "git.capotej.com/capotej/communique/models" "git.capotej.com/capotej/communique/urls" "github.com/go-fed/activity/streams" @@ -8,7 +10,7 @@ import ( // RenderOutboxCollection takes a page of ActivityStream objects as JSON strings and concatenates them together to return an // ActivtyStreamsOrderedCollection -func RenderOutboxCollection(name, domain string, page []models.PersisterResult) (map[string]interface{}, error) { +func RenderOutboxCollection(name, domain string, page []models.OutboxItem) (map[string]interface{}, error) { id, err := urls.UrlOutboxPage(name, domain) if err != nil { return nil, err @@ -18,11 +20,12 @@ func RenderOutboxCollection(name, domain string, page []models.PersisterResult) if err != nil { return nil, err } - - result := make(map[string]interface{}) - result["id"] = id.String() - result["partOf"] = partOf.String() - result["orderedItems"] = page + publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public") + if err != nil { + return nil, err + } + toProp := streams.NewActivityStreamsToProperty() + toProp.AppendIRI(publicUrl) oc := streams.NewActivityStreamsOrderedCollectionPage() @@ -33,6 +36,7 @@ func RenderOutboxCollection(name, domain string, page []models.PersisterResult) partOfProp := streams.NewActivityStreamsPartOfProperty() partOfProp.SetIRI(partOf) oc.SetActivityStreamsPartOf(partOfProp) + oc.SetActivityStreamsTo(toProp) itemsProp := streams.NewActivityStreamsOrderedItemsProperty() @@ -43,8 +47,12 @@ func RenderOutboxCollection(name, domain string, page []models.PersisterResult) note := streams.NewActivityStreamsNote() contentProp := streams.NewActivityStreamsContentProperty() - contentProp.AppendXMLSchemaString(string(v.Value)) + contentProp.AppendXMLSchemaString(string(v.Content)) note.SetActivityStreamsContent(contentProp) + + note.SetActivityStreamsTo(toProp) + // publishedProp := streams.NewActivityStreamsPublishedProperty() + // note.SetActivityStreamsPublished() obj.AppendActivityStreamsNote(note) itemsProp.AppendActivityStreamsCreate(crea) |