Skip to content

Commit 4ab6bad

Browse files
Move the extractors.LinkTransformer interface to the models package
1 parent a861357 commit 4ab6bad

File tree

7 files changed

+34
-23
lines changed

7 files changed

+34
-23
lines changed

extractors/default_extractor.go

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,17 @@ import (
77
"net/http"
88

99
"github.com/pkg/errors"
10+
"github.com/thewizardplusplus/go-crawler/models"
1011
htmlselector "github.com/thewizardplusplus/go-html-selector"
1112
"github.com/thewizardplusplus/go-html-selector/builders"
1213
httputils "github.com/thewizardplusplus/go-http-utils"
1314
)
1415

15-
//go:generate mockery --name=LinkTransformer --inpackage --case=underscore --testonly
16-
17-
// LinkTransformer ...
18-
type LinkTransformer interface {
19-
TransformLinks(
20-
links []string,
21-
response *http.Response,
22-
responseContent []byte,
23-
) ([]string, error)
24-
}
25-
2616
// DefaultExtractor ...
2717
type DefaultExtractor struct {
2818
HTTPClient httputils.HTTPClient
2919
Filters htmlselector.OptimizedFilterGroup
30-
LinkTransformer LinkTransformer
20+
LinkTransformer models.LinkTransformer
3121
}
3222

3323
// ExtractLinks ...

extractors/default_extractor_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"github.com/stretchr/testify/assert"
1414
"github.com/stretchr/testify/mock"
15+
"github.com/thewizardplusplus/go-crawler/models"
1516
htmlselector "github.com/thewizardplusplus/go-html-selector"
1617
httputils "github.com/thewizardplusplus/go-http-utils"
1718
)
@@ -20,7 +21,7 @@ func TestDefaultExtractor_ExtractLinks(test *testing.T) {
2021
type fields struct {
2122
HTTPClient httputils.HTTPClient
2223
Filters htmlselector.OptimizedFilterGroup
23-
LinkTransformer LinkTransformer
24+
LinkTransformer models.LinkTransformer
2425
}
2526
type args struct {
2627
ctx context.Context
@@ -95,7 +96,7 @@ func TestDefaultExtractor_ExtractLinks(test *testing.T) {
9596
Filters: htmlselector.OptimizeFilters(htmlselector.FilterGroup{
9697
"a": {"href"},
9798
}),
98-
LinkTransformer: func() LinkTransformer {
99+
LinkTransformer: func() models.LinkTransformer {
99100
links := []string{"http://example.com/1", "http://example.com/2"}
100101
transformedLinks := []string{
101102
"http://example.com/transformed/1",
@@ -175,7 +176,7 @@ func TestDefaultExtractor_ExtractLinks(test *testing.T) {
175176
Filters: htmlselector.OptimizeFilters(htmlselector.FilterGroup{
176177
"a": {"href"},
177178
}),
178-
LinkTransformer: func() LinkTransformer {
179+
LinkTransformer: func() models.LinkTransformer {
179180
links := []string{"http://example.com/1", "http://example.com/2"}
180181

181182
responseContent := `

extractors/mock_gen.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,16 @@ type LinkExtractor interface {
2828
models.LinkExtractor
2929
}
3030

31+
//go:generate mockery --name=LinkTransformer --inpackage --case=underscore --testonly
32+
33+
// LinkTransformer ...
34+
//
35+
// It's used only for mock generating.
36+
//
37+
type LinkTransformer interface {
38+
models.LinkTransformer
39+
}
40+
3141
//go:generate mockery --name=Logger --inpackage --case=underscore --testonly
3242

3343
// Logger ...

extractors/transformers/mock_gen.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package transformers
22

33
import (
4-
"github.com/thewizardplusplus/go-crawler/extractors"
4+
"github.com/thewizardplusplus/go-crawler/models"
55
)
66

77
//go:generate mockery --name=LinkTransformer --inpackage --case=underscore --testonly
@@ -11,5 +11,5 @@ import (
1111
// It's used only for mock generating.
1212
//
1313
type LinkTransformer interface {
14-
extractors.LinkTransformer
14+
models.LinkTransformer
1515
}

extractors/transformers/transformer_group.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import (
44
"net/http"
55

66
"github.com/pkg/errors"
7-
"github.com/thewizardplusplus/go-crawler/extractors"
7+
"github.com/thewizardplusplus/go-crawler/models"
88
)
99

1010
// TransformerGroup ...
11-
type TransformerGroup []extractors.LinkTransformer
11+
type TransformerGroup []models.LinkTransformer
1212

1313
// TransformLinks ...
1414
func (transformers TransformerGroup) TransformLinks(

extractors/transformers/transformer_group_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010

1111
"github.com/stretchr/testify/assert"
1212
"github.com/stretchr/testify/mock"
13-
"github.com/thewizardplusplus/go-crawler/extractors"
13+
"github.com/thewizardplusplus/go-crawler/models"
1414
)
1515

1616
func TestTransformerGroup_TransformLinks(test *testing.T) {
@@ -54,7 +54,7 @@ func TestTransformerGroup_TransformLinks(test *testing.T) {
5454
{
5555
name: "success with transformers",
5656
transformers: TransformerGroup{
57-
func() extractors.LinkTransformer {
57+
func() models.LinkTransformer {
5858
links := []string{"http://example.com/1", "http://example.com/2"}
5959
transformedLinks := []string{
6060
"http://example.com/1/transformed/1",
@@ -79,7 +79,7 @@ func TestTransformerGroup_TransformLinks(test *testing.T) {
7979

8080
return transformer
8181
}(),
82-
func() extractors.LinkTransformer {
82+
func() models.LinkTransformer {
8383
links := []string{
8484
"http://example.com/1/transformed/1",
8585
"http://example.com/2/transformed/1",
@@ -137,7 +137,7 @@ func TestTransformerGroup_TransformLinks(test *testing.T) {
137137
{
138138
name: "error",
139139
transformers: TransformerGroup{
140-
func() extractors.LinkTransformer {
140+
func() models.LinkTransformer {
141141
links := []string{"http://example.com/1", "http://example.com/2"}
142142

143143
responseContent := `

models/interfaces.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,23 @@ package models
22

33
import (
44
"context"
5+
"net/http"
56
)
67

78
// LinkExtractor ...
89
type LinkExtractor interface {
910
ExtractLinks(ctx context.Context, threadID int, link string) ([]string, error)
1011
}
1112

13+
// LinkTransformer ...
14+
type LinkTransformer interface {
15+
TransformLinks(
16+
links []string,
17+
response *http.Response,
18+
responseContent []byte,
19+
) ([]string, error)
20+
}
21+
1222
// LinkChecker ...
1323
type LinkChecker interface {
1424
CheckLink(ctx context.Context, link SourcedLink) bool

0 commit comments

Comments
 (0)