From e7db291bd391f3a58f9d12bdc0e30feb5dc8d173 Mon Sep 17 00:00:00 2001 From: Matt Baer Date: Fri, 22 Jun 2018 17:11:07 -0400 Subject: [PATCH] Add BaseObject --- activitystreams/data.go | 28 ++++++++++++++++++++++++++++ activitystreams/person.go | 14 +++++++------- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/activitystreams/data.go b/activitystreams/data.go index 2b88459..d3453a3 100644 --- a/activitystreams/data.go +++ b/activitystreams/data.go @@ -1,6 +1,12 @@ package activitystreams type ( + BaseObject struct { + Context []string `json:"@context"` + Type string `json:"type"` + ID string `json:"id"` + } + PublicKey struct { ID string `json:"id"` Owner string `json:"owner"` @@ -13,3 +19,25 @@ type ( URL string `json:"url"` } ) + +type OrderedCollection struct { + BaseObject + TotalItems int `json:"totalItems"` + First string `json:"first"` + Last string `json:"last,omitempty"` +} + +func NewOrderedCollection(accountRoot string, items int) *OrderedCollection { + oc := OrderedCollection{ + BaseObject: BaseObject{ + Context: []string{ + "https://www.w3.org/ns/activitystreams", + }, + ID: accountRoot + "/outbox", + Type: "OrderedCollection", + }, + First: accountRoot + "/outbox?page=1", + TotalItems: items, + } + return &oc +} diff --git a/activitystreams/person.go b/activitystreams/person.go index 495671f..4cd1a21 100644 --- a/activitystreams/person.go +++ b/activitystreams/person.go @@ -1,9 +1,7 @@ package activitystreams type Person struct { - Context []string `json:"@context"` - Type string `json:"type"` - ID string `json:"id"` + BaseObject Inbox string `json:"inbox"` Outbox string `json:"outbox"` PreferredUsername string `json:"preferredUsername"` @@ -18,11 +16,13 @@ type Person struct { func NewPerson(accountRoot string) *Person { p := Person{ - Type: "Person", - Context: []string{ - "https://www.w3.org/ns/activitystreams", + BaseObject: BaseObject{ + Type: "Person", + Context: []string{ + "https://www.w3.org/ns/activitystreams", + }, + ID: accountRoot, }, - ID: accountRoot, URL: accountRoot, Following: accountRoot + "/following", Followers: accountRoot + "/followers",