Add AddItemExtensioner interface

This commit is contained in:
Abhishek Pandey 2023-06-30 01:35:22 -07:00
parent 81bee48ed7
commit e1cf901d88
2 changed files with 19 additions and 3 deletions

View File

@ -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")

View File

@ -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,