aboutsummaryrefslogtreecommitdiff
path: root/resources/outbox.go
blob: f9a4aefd13990c1bae995fdaed4f72925ab59e39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package resources

import (
	"fmt"
	"net/url"
	"path"

	"github.com/go-fed/activity/streams"
)

func RenderOutbox(name, domain string) (map[string]interface{}, error) {
	id, err := url.Parse(path.Join("https://", domain, "actors", name, "outbox"))

	if err != nil {
		return nil, fmt.Errorf("could not partse url: %w", err)
	}

	first, err := url.Parse(path.Join("https://", domain, "actors", name, "outbox", "?=page=true"))
	if err != nil {
		return nil, fmt.Errorf("could not partse url: %w", err)
	}

	oc := streams.NewActivityStreamsOrderedCollection()
	idProp := streams.NewJSONLDIdProperty()
	idProp.Set(id)
	oc.SetJSONLDId(idProp)

	ocProp := streams.NewActivityStreamsFirstProperty()
	ocProp.SetIRI(first)

	oc.SetActivityStreamsFirst(ocProp)

	return streams.Serialize(oc)
}