aboutsummaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to 'views')
-rw-r--r--views/activity.go20
-rw-r--r--views/outbox.go17
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)