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 }