aboutsummaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--views/activity.go14
-rw-r--r--views/helpers.go94
-rw-r--r--views/note.go12
-rw-r--r--views/outbox.go85
4 files changed, 103 insertions, 102 deletions
diff --git a/views/activity.go b/views/activity.go
index cd34b6c..33b73cb 100644
--- a/views/activity.go
+++ b/views/activity.go
@@ -1,20 +1,18 @@
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")
+func RenderActivity(name, domain string, v models.OutboxItem) (map[string]interface{}, error) {
+ note, err := activityObjectNote(name, domain, v)
+ if err != nil {
+ return nil, err
+ }
+ crea, err := activityObjectCreate(name, domain, v, note)
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/helpers.go b/views/helpers.go
new file mode 100644
index 0000000..96c81bc
--- /dev/null
+++ b/views/helpers.go
@@ -0,0 +1,94 @@
+package views
+
+import (
+ "net/url"
+
+ "git.capotej.com/capotej/communique/models"
+ "git.capotej.com/capotej/communique/urls"
+ "github.com/go-fed/activity/streams"
+ "github.com/go-fed/activity/streams/vocab"
+)
+
+func activityObjectNote(name, domain string, v models.OutboxItem) (vocab.ActivityStreamsNote, error) {
+ var err error
+ note := streams.NewActivityStreamsNote()
+
+ noteUrl, err := urls.UrlNote(name, domain, string(v.Id))
+ if err != nil {
+ return nil, err
+ }
+ noteIdProp := streams.NewJSONLDIdProperty()
+ noteIdProp.Set(noteUrl)
+ note.SetJSONLDId(noteIdProp)
+ contentProp := streams.NewActivityStreamsContentProperty()
+ contentProp.AppendXMLSchemaString(string(v.Content))
+ note.SetActivityStreamsContent(contentProp)
+
+ actorUrl, err := urls.UrlProfile(name, domain)
+ if err != nil {
+ return nil, err
+ }
+ attrProp := streams.NewActivityStreamsAttributedToProperty()
+ attrProp.AppendIRI(actorUrl)
+ note.SetActivityStreamsAttributedTo(attrProp)
+
+ summaryProp := streams.NewActivityStreamsSummaryProperty()
+ summaryProp.AppendXMLSchemaString("")
+ note.SetActivityStreamsSummary(summaryProp)
+
+ noteUrlProp := streams.NewActivityStreamsUrlProperty()
+ noteUrlProp.AppendIRI(noteUrl)
+ note.SetActivityStreamsUrl(noteUrlProp)
+
+ publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public")
+ if err != nil {
+ return nil, err
+ }
+ toProp := streams.NewActivityStreamsToProperty()
+ toProp.AppendIRI(publicUrl)
+ note.SetActivityStreamsTo(toProp)
+
+ publishedProp := streams.NewActivityStreamsPublishedProperty()
+ publishedProp.Set(v.CreatedAt)
+ note.SetActivityStreamsPublished(publishedProp)
+ return note, err
+}
+
+func activityObjectCreate(name, domain string, v models.OutboxItem, note vocab.ActivityStreamsNote) (vocab.ActivityStreamsCreate, error) {
+ var err error
+ 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)
+
+ publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public")
+ if err != nil {
+ return nil, err
+ }
+ toProp := streams.NewActivityStreamsToProperty()
+ toProp.AppendIRI(publicUrl)
+ crea.SetActivityStreamsTo(toProp)
+
+ publishedProp := streams.NewActivityStreamsPublishedProperty()
+ publishedProp.Set(v.CreatedAt)
+ crea.SetActivityStreamsPublished(publishedProp)
+
+ actorUrl, err := urls.UrlProfile(name, domain)
+ if err != nil {
+ return nil, err
+ }
+ actorProp := streams.NewActivityStreamsActorProperty()
+ actorProp.AppendIRI(actorUrl)
+ crea.SetActivityStreamsActor(actorProp)
+ obj.AppendActivityStreamsNote(note)
+
+ return crea, err
+}
diff --git a/views/note.go b/views/note.go
index 6d354ed..2563d01 100644
--- a/views/note.go
+++ b/views/note.go
@@ -1,20 +1,14 @@
package views
import (
- "net/url"
-
"git.capotej.com/capotej/communique/models"
"github.com/go-fed/activity/streams"
)
-func RenderNote(name, domain string, item models.OutboxItem) (map[string]interface{}, error) {
- publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public")
+func RenderNote(name, domain string, v models.OutboxItem) (map[string]interface{}, error) {
+ note, err := activityObjectNote(name, domain, v)
if err != nil {
return nil, err
}
- toProp := streams.NewActivityStreamsToProperty()
- toProp.AppendIRI(publicUrl)
- crea := streams.NewActivityStreamsNote()
- crea.SetActivityStreamsTo(toProp)
- return streams.Serialize(crea)
+ return streams.Serialize(note)
}
diff --git a/views/outbox.go b/views/outbox.go
index 5c1ade3..4dd5ab5 100644
--- a/views/outbox.go
+++ b/views/outbox.go
@@ -6,93 +6,8 @@ import (
"git.capotej.com/capotej/communique/models"
"git.capotej.com/capotej/communique/urls"
"github.com/go-fed/activity/streams"
- "github.com/go-fed/activity/streams/vocab"
)
-func activityObjectNote(name, domain string, v models.OutboxItem) (vocab.ActivityStreamsNote, error) {
- var err error
- note := streams.NewActivityStreamsNote()
-
- noteUrl, err := urls.UrlNote(name, domain, string(v.Id))
- if err != nil {
- return nil, err
- }
- noteIdProp := streams.NewJSONLDIdProperty()
- noteIdProp.Set(noteUrl)
- note.SetJSONLDId(noteIdProp)
- contentProp := streams.NewActivityStreamsContentProperty()
- contentProp.AppendXMLSchemaString(string(v.Content))
- note.SetActivityStreamsContent(contentProp)
-
- actorUrl, err := urls.UrlProfile(name, domain)
- if err != nil {
- return nil, err
- }
- attrProp := streams.NewActivityStreamsAttributedToProperty()
- attrProp.AppendIRI(actorUrl)
- note.SetActivityStreamsAttributedTo(attrProp)
-
- summaryProp := streams.NewActivityStreamsSummaryProperty()
- summaryProp.AppendXMLSchemaString("")
- note.SetActivityStreamsSummary(summaryProp)
-
- noteUrlProp := streams.NewActivityStreamsUrlProperty()
- noteUrlProp.AppendIRI(noteUrl)
- note.SetActivityStreamsUrl(noteUrlProp)
-
- publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public")
- if err != nil {
- return nil, err
- }
- toProp := streams.NewActivityStreamsToProperty()
- toProp.AppendIRI(publicUrl)
- note.SetActivityStreamsTo(toProp)
-
- publishedProp := streams.NewActivityStreamsPublishedProperty()
- publishedProp.Set(v.CreatedAt)
- note.SetActivityStreamsPublished(publishedProp)
- return note, err
-}
-
-func activityObjectCreate(name, domain string, v models.OutboxItem, note vocab.ActivityStreamsNote) (vocab.ActivityStreamsCreate, error) {
- var err error
- 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)
-
- publicUrl, err := url.Parse("https://www.w3.org/ns/activitystreams#Public")
- if err != nil {
- return nil, err
- }
- toProp := streams.NewActivityStreamsToProperty()
- toProp.AppendIRI(publicUrl)
- crea.SetActivityStreamsTo(toProp)
-
- publishedProp := streams.NewActivityStreamsPublishedProperty()
- publishedProp.Set(v.CreatedAt)
- crea.SetActivityStreamsPublished(publishedProp)
-
- actorUrl, err := urls.UrlProfile(name, domain)
- if err != nil {
- return nil, err
- }
- actorProp := streams.NewActivityStreamsActorProperty()
- actorProp.AppendIRI(actorUrl)
- crea.SetActivityStreamsActor(actorProp)
- obj.AppendActivityStreamsNote(note)
-
- return crea, err
-}
-
// 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.OutboxItem) (map[string]interface{}, error) {