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/outbox.go | |
parent | 5a990719a02f4fd33817a2188be17b3b50498b49 (diff) | |
download | communique-a4288b06bf13210721c8f2fae64bc12c118f9041.tar.gz |
refactor
Diffstat (limited to 'resources/outbox.go')
-rw-r--r-- | resources/outbox.go | 111 |
1 files changed, 0 insertions, 111 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) -} |