Files
query-orchestration/internal/document/clean/content.go
T

42 lines
886 B
Go
Raw Normal View History

2025-02-28 13:11:53 +00:00
package documentclean
import (
"context"
"errors"
documenttypes "queryorchestration/internal/document/types"
2025-02-28 13:11:53 +00:00
"github.com/aws/aws-sdk-go-v2/service/s3"
)
type Content interface {
IsCorrupt(context.Context) *documenttypes.InvalidDocumentReason
2025-02-28 13:11:53 +00:00
}
func (s *Service) getContent(ctx context.Context, params *CleanParams, mimeType documenttypes.MimeType) (Content, error) {
key := params.Key.String()
2025-02-28 13:11:53 +00:00
resp, err := s.cfg.GetStoreClient().GetObject(ctx, &s3.GetObjectInput{
Bucket: &params.Bucket,
Key: &key,
2025-02-28 13:11:53 +00:00
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
2025-02-28 13:11:53 +00:00
default:
return nil, errors.New("invalid mimetype")
}
return content, nil
}