Files
query-orchestration/internal/document/clean/content.go
T
Michael McGuinness 60812aba91 Merged in feature/richname (pull request #112)
Standardised rich name for Files

* tests
2025-04-03 19:17:24 +00:00

42 lines
886 B
Go

package documentclean
import (
"context"
"errors"
documenttypes "queryorchestration/internal/document/types"
"github.com/aws/aws-sdk-go-v2/service/s3"
)
type Content interface {
IsCorrupt(context.Context) *documenttypes.InvalidDocumentReason
}
func (s *Service) getContent(ctx context.Context, params *CleanParams, mimeType documenttypes.MimeType) (Content, error) {
key := params.Key.String()
resp, err := s.cfg.GetStoreClient().GetObject(ctx, &s3.GetObjectInput{
Bucket: &params.Bucket,
Key: &key,
IfMatch: &params.Hash,
})
if err != nil {
return nil, err
}
defer resp.Body.Close()
var content Content
switch mimeType {
case documenttypes.MimeTypePDF:
pdf, err := documenttypes.NewPDFFromReadCloser(resp.Body)
if err != nil {
return nil, err
}
content = pdf
default:
return nil, errors.New("invalid mimetype")
}
return content, nil
}