[feature] Federate reports to remote instance as Flag (if desired) (#1386)

* reports federate out, we did it lxds

* fix optional line start (should be optional slash)
This commit is contained in:
tobi 2023-01-27 14:48:11 +01:00 committed by GitHub
commit 3283900b0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 207 additions and 69 deletions

View file

@ -20,7 +20,7 @@ package federatingdb
import (
"context"
"errors"
"fmt"
"net/url"
"codeberg.org/gruf/go-kv"
@ -33,34 +33,27 @@ import (
//
// The library makes this call only after acquiring a lock first.
func (f *federatingDB) Get(ctx context.Context, id *url.URL) (value vocab.Type, err error) {
l := log.WithFields(kv.Fields{
{"id", id},
}...)
l := log.WithFields(kv.Fields{{"id", id}}...)
l.Debug("entering Get")
if uris.IsUserPath(id) {
switch {
case uris.IsUserPath(id):
acct, err := f.db.GetAccountByURI(ctx, id.String())
if err != nil {
return nil, err
}
return f.typeConverter.AccountToAS(ctx, acct)
}
if uris.IsStatusesPath(id) {
case uris.IsStatusesPath(id):
status, err := f.db.GetStatusByURI(ctx, id.String())
if err != nil {
return nil, err
}
return f.typeConverter.StatusToAS(ctx, status)
}
if uris.IsFollowersPath(id) {
case uris.IsFollowersPath(id):
return f.Followers(ctx, id)
}
if uris.IsFollowingPath(id) {
case uris.IsFollowingPath(id):
return f.Following(ctx, id)
default:
return nil, fmt.Errorf("federatingDB: could not Get %s", id.String())
}
return nil, errors.New("could not get")
}