From e1cf901d88cade4d5b802abd63955e98d60f3121 Mon Sep 17 00:00:00 2001 From: Abhishek Pandey Date: Fri, 30 Jun 2023 01:35:22 -0700 Subject: [PATCH] Add AddItemExtensioner interface --- src/pkg/extensions/extensions.go | 17 +++++++++++++++-- src/pkg/extensions/extensions_test.go | 5 ++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/pkg/extensions/extensions.go b/src/pkg/extensions/extensions.go index f3f699a9f..f130a28f1 100644 --- a/src/pkg/extensions/extensions.go +++ b/src/pkg/extensions/extensions.go @@ -22,14 +22,27 @@ type CorsoItemExtensionFactory func( *details.ExtensionInfo, ) (CorsoItemExtension, error) +type AddItemExtensioner interface { + AddItemExtensions( + context.Context, + io.ReadCloser, + details.ItemInfo, + []CorsoItemExtensionFactory, + ) (io.ReadCloser, *details.ExtensionInfo, error) +} + +var _ AddItemExtensioner = &ItemExtensionHandler{} + +type ItemExtensionHandler struct{} + // AddItemExtensions wraps provided readcloser with extensions // supplied via factory -func AddItemExtensions( +func (eh *ItemExtensionHandler) AddItemExtensions( ctx context.Context, rc io.ReadCloser, info details.ItemInfo, factories []CorsoItemExtensionFactory, -) (CorsoItemExtension, *details.ExtensionInfo, error) { +) (io.ReadCloser, *details.ExtensionInfo, error) { // TODO: move to validate if rc == nil { return nil, nil, clues.New("nil inner readcloser") diff --git a/src/pkg/extensions/extensions_test.go b/src/pkg/extensions/extensions_test.go index 5c5fc2a7b..6826696d7 100644 --- a/src/pkg/extensions/extensions_test.go +++ b/src/pkg/extensions/extensions_test.go @@ -18,6 +18,8 @@ import ( "github.com/alcionai/corso/src/pkg/logger" ) +var _ CorsoItemExtension = &MockExtension{} + // Temporary, testing purposes only type MockExtension struct { // TODO: Add cumlulative crc32 checksum @@ -265,8 +267,9 @@ func (suite *ExtensionsUnitSuite) TestAddItemExtensions() { t := suite.T() ctx, flush := tester.NewContext(t) defer flush() + ith := &ItemExtensionHandler{} - extRc, extInfo, err := AddItemExtensions( + extRc, extInfo, err := ith.AddItemExtensions( ctx, test.rc, testItemInfo,