aboutsummaryrefslogtreecommitdiff
path: root/views/profile.go
diff options
context:
space:
mode:
Diffstat (limited to 'views/profile.go')
-rw-r--r--views/profile.go61
1 files changed, 57 insertions, 4 deletions
diff --git a/views/profile.go b/views/profile.go
index 12aae54..5b82b46 100644
--- a/views/profile.go
+++ b/views/profile.go
@@ -1,21 +1,74 @@
package views
import (
+ "fmt"
+
"git.capotej.com/capotej/communique/urls"
"github.com/go-fed/activity/streams"
)
func RenderProfile(name, domain string) (map[string]interface{}, error) {
- u, err := urls.UrlInbox(name, domain)
+ inbox, err := urls.UrlInbox(name, domain)
+ if err != nil {
+ return nil, err
+ }
+
+ inboxProp := streams.NewActivityStreamsInboxProperty()
+ inboxProp.SetIRI(inbox)
+
+ outbox, err := urls.UrlOutbox(name, domain)
+ if err != nil {
+ return nil, err
+ }
+
+ outboxProp := streams.NewActivityStreamsOutboxProperty()
+ outboxProp.SetIRI(outbox)
+
+ actorUrl, err := urls.UrlProfile(name, domain)
+ if err != nil {
+ return nil, err
+ }
+
+ followingUrl, err := urls.UrlFollowing(name, domain)
if err != nil {
return nil, err
}
- inb := streams.NewActivityStreamsInboxProperty()
- inb.SetIRI(u)
+ followersUrl, err := urls.UrlFollowers(name, domain)
+ if err != nil {
+ return nil, err
+ }
p := streams.NewActivityStreamsService()
- p.SetActivityStreamsInbox(inb)
+ idProp := streams.NewJSONLDIdProperty()
+ idProp.Set(actorUrl)
+ p.SetJSONLDId(idProp)
+ p.SetActivityStreamsInbox(inboxProp)
+ p.SetActivityStreamsOutbox(outboxProp)
+
+ nameProp := streams.NewActivityStreamsNameProperty()
+ nameProp.AppendXMLSchemaString(name)
+ p.SetActivityStreamsName(nameProp)
+
+ usernameProp := streams.NewActivityStreamsPreferredUsernameProperty()
+ usernameProp.SetXMLSchemaString(name)
+ p.SetActivityStreamsPreferredUsername(usernameProp)
+
+ urlProp := streams.NewActivityStreamsUrlProperty()
+ urlProp.AppendIRI(actorUrl)
+ p.SetActivityStreamsUrl(urlProp)
+
+ summaryProp := streams.NewActivityStreamsSummaryProperty()
+ summaryProp.AppendXMLSchemaString(fmt.Sprintf("profile for %s", name))
+ p.SetActivityStreamsSummary(summaryProp)
+
+ followersProp := streams.NewActivityStreamsFollowersProperty()
+ followersProp.SetIRI(followersUrl)
+ p.SetActivityStreamsFollowers(followersProp)
+
+ followingProp := streams.NewActivityStreamsFollowingProperty()
+ followingProp.SetIRI(followingUrl)
+ p.SetActivityStreamsFollowing(followingProp)
return streams.Serialize(p)
}