60812aba91
Standardised rich name for Files * tests
42 lines
886 B
Go
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: ¶ms.Bucket,
|
|
Key: &key,
|
|
IfMatch: ¶ms.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
|
|
}
|