diff options
author | Julio Capote <jcapote@gmail.com> | 2023-01-01 21:48:37 +0000 |
---|---|---|
committer | Julio Capote <jcapote@gmail.com> | 2023-01-01 21:48:37 +0000 |
commit | b3f22c698739bdd57dab77af45a0b8a43da72ca4 (patch) | |
tree | 07d4bca01bc49d71d2ddceaa89f51487f0768047 /views | |
parent | 71495ac61587e3380f413b4d34669a68b5cd8068 (diff) | |
download | communique-b3f22c698739bdd57dab77af45a0b8a43da72ca4.tar.gz |
working ids and activity lookups
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) |