Skip to content

Commit

Permalink
Fixes
Browse files Browse the repository at this point in the history
rename variables,
fix test package of test resources,
declare internal structure as private structure
  • Loading branch information
Daniel Machado Kraus authored and dhowden committed Sep 27, 2019
1 parent 83716c3 commit d82a45e
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 17 deletions.
25 changes: 12 additions & 13 deletions docx.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ import (
"time"
)

type TypeOverride struct {
type typeOverride struct {
XMLName xml.Name `xml:"Override"`
ContentType string `xml:"ContentType,attr"`
PartName string `xml:"PartName,attr"`
}

type Type struct {
type contentTypeDefinition struct {
XMLName xml.Name `xml:"Types"`
Overrides []TypeOverride `xml:"Override"`
Overrides []typeOverride `xml:"Override"`
}

// ConvertDocx converts an MS Word docx file to text.
Expand All @@ -37,12 +37,12 @@ func ConvertDocx(r io.Reader) (string, map[string]string, error) {

zipFiles := mapZipFiles(zr.File)

types, err := getContentTypes(zipFiles["[Content_Types].xml"])
contentTypeDefinition, err := getContentTypeDefinition(zipFiles["[Content_Types].xml"])
if err != nil {
return "", nil, err
}

for _, override := range types.Overrides {
for _, override := range contentTypeDefinition.Overrides {
f := zipFiles[override.PartName]

switch {
Expand Down Expand Up @@ -92,28 +92,27 @@ func ConvertDocx(r io.Reader) (string, map[string]string, error) {
return textHeader + "\n" + textBody + "\n" + textFooter, meta, nil
}

func getContentTypes(f *zip.File) (*Type, error) {
contentTypesFile, err := f.Open()
func getContentTypeDefinition(zf *zip.File) (*contentTypeDefinition, error) {
f, err := zf.Open()
if err != nil {
return nil, err
}
defer contentTypesFile.Close()
defer f.Close()

contentTypesFileBytes, err := ioutil.ReadAll(contentTypesFile)
b, err := ioutil.ReadAll(f)
if err != nil {
return nil, err
}

var types Type
err = xml.Unmarshal(contentTypesFileBytes, &types)
var definition contentTypeDefinition; err = xml.Unmarshal(b, &definition)
if err != nil {
return nil, err
}
return &types, nil
return &definition, nil
}

func mapZipFiles(files []*zip.File) map[string]*zip.File {
filesMap := map[string]*zip.File{}
filesMap := make(map[string]*zip.File, 2*len(files))
for _, f := range files {
filesMap[f.Name] = f
filesMap["/"+f.Name] = f
Expand Down
6 changes: 3 additions & 3 deletions docx_test/docx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ import (
"testing"

"code.sajari.com/docconv"
_ "code.sajari.com/docconv/docx_test/resources"
)

func TestConvertDocx(t *testing.T) {
f, err := os.Open("./resources/sample.docx")
f, err := os.Open("./testdata/sample.docx")
if err != nil {
t.Fatalf("got error = %v, want nil", err)
}

resp, _, err := docconv.ConvertDocx(f)
if err != nil {
t.Fatalf("got error = %v, want nil", err)
Expand All @@ -31,7 +31,7 @@ func TestConvertDocx(t *testing.T) {
}

func TestConvertDocxWithUncommonValidStructure(t *testing.T) {
f, err := os.Open("./resources/sample_2.docx")
f, err := os.Open("./testdata/sample_2.docx")
if err != nil {
t.Fatalf("got error = %v, want nil", err)
}
Expand Down
1 change: 0 additions & 1 deletion docx_test/resources/package.go

This file was deleted.

File renamed without changes.
File renamed without changes.

0 comments on commit d82a45e

Please sign in to comment.