diff options
author | Julio Capote <jcapote@gmail.com> | 2022-12-29 20:08:16 +0000 |
---|---|---|
committer | Julio Capote <jcapote@gmail.com> | 2022-12-29 20:08:16 +0000 |
commit | a4288b06bf13210721c8f2fae64bc12c118f9041 (patch) | |
tree | 49808a68d61aa450c6625477e468968fd3198ded /resources | |
parent | 5a990719a02f4fd33817a2188be17b3b50498b49 (diff) | |
download | communique-a4288b06bf13210721c8f2fae64bc12c118f9041.tar.gz |
refactor
Diffstat (limited to 'resources')
-rw-r--r-- | resources/outbox.go | 111 | ||||
-rw-r--r-- | resources/profile.go | 21 | ||||
-rw-r--r-- | resources/webfinger.go | 32 |
3 files changed, 0 insertions, 164 deletions
diff --git a/resources/outbox.go b/resources/outbox.go deleted file mode 100644 index e7004c4..0000000 --- a/resources/outbox.go +++ /dev/null @@ -1,111 +0,0 @@ -package resources - -import ( - "git.capotej.com/capotej/communique/urls" - "github.com/dgraph-io/badger/v3" - "github.com/go-fed/activity/streams" -) - -func RenderOutboxPage(name, domain string, db *badger.DB) (map[string]interface{}, error) { - id, err := urls.UrlOutboxPage(name, domain) - if err != nil { - return nil, err - } - - partOf, err := urls.UrlOutbox(name, domain) - if err != nil { - return nil, err - } - - oc := streams.NewActivityStreamsOrderedCollectionPage() - - idProp := streams.NewJSONLDIdProperty() - idProp.Set(id) - oc.SetJSONLDId(idProp) - - partOfProp := streams.NewActivityStreamsPartOfProperty() - partOfProp.SetIRI(partOf) - oc.SetActivityStreamsPartOf(partOfProp) - - itemsProp := streams.NewActivityStreamsOrderedItemsProperty() - - err = db.View(func(txn *badger.Txn) error { - opts := badger.DefaultIteratorOptions - opts.PrefetchValues = false - it := txn.NewIterator(opts) - defer it.Close() - prefix := []byte("outbox:sample") // TODO - for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { - item := it.Item() - err := item.Value(func(v []byte) error { - crea := streams.NewActivityStreamsCreate() - obj := streams.NewActivityStreamsObjectProperty() - crea.SetActivityStreamsObject(obj) - - note := streams.NewActivityStreamsNote() - contentProp := streams.NewActivityStreamsContentProperty() - contentProp.AppendXMLSchemaString(string(v)) - note.SetActivityStreamsContent(contentProp) - obj.AppendActivityStreamsNote(note) - - itemsProp.AppendActivityStreamsCreate(crea) - return nil - }) - if err != nil { - return err - } - } - return nil - }) - if err != nil { - return nil, err - } - - oc.SetActivityStreamsOrderedItems(itemsProp) - return streams.Serialize(oc) -} - -func RenderOutbox(name, domain string, db *badger.DB) (map[string]interface{}, error) { - id, err := urls.UrlOutbox(name, domain) - - if err != nil { - return nil, err - } - - first, err := urls.UrlOutboxPage(name, domain) - if err != nil { - return nil, err - } - - oc := streams.NewActivityStreamsOrderedCollection() - - idProp := streams.NewJSONLDIdProperty() - idProp.Set(id) - oc.SetJSONLDId(idProp) - - var i int - // err = db.View(func(txn *badger.Txn) error { - // opts := badger.DefaultIteratorOptions - // opts.PrefetchValues = false - // it := txn.NewIterator(opts) - // defer it.Close() - // prefix := []byte("outbox:sample") // TODO - // for it.Seek(prefix); it.ValidForPrefix(prefix); it.Next() { - // i++ - // } - // return nil - // }) - // if err != nil { - // return nil, err - // } - - itemsProp := streams.NewActivityStreamsTotalItemsProperty() - itemsProp.Set(i) - oc.SetActivityStreamsTotalItems(itemsProp) - - ocProp := streams.NewActivityStreamsFirstProperty() - ocProp.SetIRI(first) - oc.SetActivityStreamsFirst(ocProp) - - return streams.Serialize(oc) -} diff --git a/resources/profile.go b/resources/profile.go deleted file mode 100644 index 971b11c..0000000 --- a/resources/profile.go +++ /dev/null @@ -1,21 +0,0 @@ -package resources - -import ( - "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) - if err != nil { - return nil, err - } - - inb := streams.NewActivityStreamsInboxProperty() - inb.SetIRI(u) - - p := streams.NewActivityStreamsService() - p.SetActivityStreamsInbox(inb) - - return streams.Serialize(p) -} diff --git a/resources/webfinger.go b/resources/webfinger.go deleted file mode 100644 index e7c47ea..0000000 --- a/resources/webfinger.go +++ /dev/null @@ -1,32 +0,0 @@ -package resources - -import ( - "fmt" - "path" -) - -type Link struct { - Rel string `json:"rel"` - Type string `json:"type"` - Href string `json:"href"` -} - -type WebfingerResource struct { - Subject string `json:"subject"` - Aliases []string `json:"aliases"` - Links []Link `json:"links"` -} - -func RenderWebfingerResource(name, domain string) (*WebfingerResource, error) { - rs := WebfingerResource{ - // TODO clean up - Subject: fmt.Sprintf("acct:%s@%s", name, domain), - Aliases: []string{}, - Links: []Link{{ - Rel: "self", - Href: path.Join("https://", domain, "actors", name), - Type: "application/activity+json", - }}, - } - return &rs, nil -} |