diff options
Diffstat (limited to 'views')
-rw-r--r-- | views/activity.go | 20 | ||||
-rw-r--r-- | views/outbox.go | 17 |
2 files changed, 37 insertions, 0 deletions
diff --git a/views/activity.go b/views/activity.go new file mode 100644 index 0000000..cd34b6c --- /dev/null +++ b/views/activity.go @@ -0,0 +1,20 @@ +package views + +import ( + "net/url" + + "git.capotej.com/capotej/communique/models" + "github.com/go-fed/activity/streams" +) + +func RenderActivity(name, domain string, item models.OutboxItem) (map[string]interface{}, error) { + publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public") + if err != nil { + return nil, err + } + toProp := streams.NewActivityStreamsToProperty() + toProp.AppendIRI(publicUrl) + crea := streams.NewActivityStreamsCreate() + crea.SetActivityStreamsTo(toProp) + return streams.Serialize(crea) +} diff --git a/views/outbox.go b/views/outbox.go index bfe225a..ee28842 100644 --- a/views/outbox.go +++ b/views/outbox.go @@ -44,11 +44,28 @@ func RenderOutboxCollection(name, domain string, page []models.OutboxItem) (map[ publishedProp.Set(v.CreatedAt) crea := streams.NewActivityStreamsCreate() obj := streams.NewActivityStreamsObjectProperty() + + creaIdProp := streams.NewJSONLDIdProperty() + activityUrl, err := urls.UrlActivity(name, domain, string(v.Id)) + if err != nil { + return nil, err + } + creaIdProp.Set(activityUrl) + crea.SetJSONLDId(creaIdProp) + crea.SetActivityStreamsObject(obj) crea.SetActivityStreamsTo(toProp) crea.SetActivityStreamsPublished(publishedProp) + noteUrl, err := urls.UrlNote(name, domain, string(v.Id)) + if err != nil { + return nil, err + } + note := streams.NewActivityStreamsNote() + noteIdProp := streams.NewJSONLDIdProperty() + noteIdProp.Set(noteUrl) + note.SetJSONLDId(noteIdProp) contentProp := streams.NewActivityStreamsContentProperty() contentProp.AppendXMLSchemaString(string(v.Content)) note.SetActivityStreamsContent(contentProp) |