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,