From 8e24bb0c33481d2a48bd52132216af4741ed594a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Rold=C3=A1n=20Betancort?= Date: Fri, 3 May 2024 17:56:52 +0100 Subject: [PATCH] expose BulkExportRelationships service controller logic so that it can be used without the grpc server --- pkg/services/v1/services.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 pkg/services/v1/services.go diff --git a/pkg/services/v1/services.go b/pkg/services/v1/services.go new file mode 100644 index 0000000000..5d123a4ace --- /dev/null +++ b/pkg/services/v1/services.go @@ -0,0 +1,17 @@ +package v1 + +import ( + "context" + + v1 "github.com/authzed/authzed-go/proto/authzed/api/v1" + + servicesv1 "github.com/authzed/spicedb/internal/services/v1" + "github.com/authzed/spicedb/pkg/datastore" +) + +// BulkExport implements the BulkExportRelationships API functionality. Given a datastore.Datastore, it will +// export stream via the sender all relationships matched by the incoming request. +// If no cursor is provided, it will fallback to the provided revision. +func BulkExport(ctx context.Context, ds datastore.Datastore, batchSize uint64, req *v1.BulkExportRelationshipsRequest, fallbackRevision datastore.Revision, sender func(response *v1.BulkExportRelationshipsResponse) error) error { + return servicesv1.BulkExport(ctx, ds, batchSize, req, fallbackRevision, sender) +}