diff --git a/activitystreams/data.go b/activitystreams/data.go new file mode 100644 index 0000000..2b88459 --- /dev/null +++ b/activitystreams/data.go @@ -0,0 +1,15 @@ +package activitystreams + +type ( + PublicKey struct { + ID string `json:"id"` + Owner string `json:"owner"` + PublicKeyPEM string `json:"publicKeyPem"` + } + + Image struct { + Type string `json:"type"` + MediaType string `json:"mediaType"` + URL string `json:"url"` + } +) diff --git a/activitystreams/person.go b/activitystreams/person.go new file mode 100644 index 0000000..495671f --- /dev/null +++ b/activitystreams/person.go @@ -0,0 +1,34 @@ +package activitystreams + +type Person struct { + Context []string `json:"@context"` + Type string `json:"type"` + ID string `json:"id"` + Inbox string `json:"inbox"` + Outbox string `json:"outbox"` + PreferredUsername string `json:"preferredUsername"` + URL string `json:"url"` + Name string `json:"name"` + Icon Image `json:"icon"` + Following string `json:"following"` + Followers string `json:"followers"` + Summary string `json:"summary"` + PublicKey PublicKey `json:"publicKey"` +} + +func NewPerson(accountRoot string) *Person { + p := Person{ + Type: "Person", + Context: []string{ + "https://www.w3.org/ns/activitystreams", + }, + ID: accountRoot, + URL: accountRoot, + Following: accountRoot + "/following", + Followers: accountRoot + "/followers", + Inbox: accountRoot + "/inbox", + Outbox: accountRoot + "/outbox", + } + + return &p +}