Skip to content

Commit c6b5d10

Browse files
authored
fix: refactor Standard Method message helpers into utils (#1212)
1 parent b8a0992 commit c6b5d10

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+210
-130
lines changed

rules/aip0131/aip0131.go

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@
1616
package aip0131
1717

1818
import (
19-
"regexp"
20-
2119
"github.com/googleapis/api-linter/lint"
22-
"github.com/jhump/protoreflect/desc"
2320
)
2421

2522
// AddRules accepts a register function and registers each of
@@ -43,12 +40,3 @@ func AddRules(r lint.RuleRegistry) error {
4340
unknownFields,
4441
)
4542
}
46-
47-
var (
48-
getReqMessageRegexp = regexp.MustCompile("^Get[A-Za-z0-9]*Request$")
49-
)
50-
51-
// Returns true if this is an AIP-131 Get request message, false otherwise.
52-
func isGetRequestMessage(m *desc.MessageDescriptor) bool {
53-
return getReqMessageRegexp.MatchString(m.GetName())
54-
}

rules/aip0131/request_name_behavior.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
var requestNameBehavior = &lint.FieldRule{
2424
Name: lint.NewRuleName(131, "request-name-behavior"),
2525
OnlyIf: func(f *desc.FieldDescriptor) bool {
26-
return isGetRequestMessage(f.GetOwner()) && f.GetName() == "name"
26+
return utils.IsGetRequestMessage(f.GetOwner()) && f.GetName() == "name"
2727
},
2828
LintField: utils.LintRequiredField,
2929
}

rules/aip0131/request_name_field.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
var requestNameField = &lint.FieldRule{
2525
Name: lint.NewRuleName(131, "request-name-field"),
2626
OnlyIf: func(f *desc.FieldDescriptor) bool {
27-
return isGetRequestMessage(f.GetOwner()) && f.GetName() == "name"
27+
return utils.IsGetRequestMessage(f.GetOwner()) && f.GetName() == "name"
2828
},
2929
LintField: utils.LintSingularStringField,
3030
}

rules/aip0131/request_name_reference.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
var requestNameReference = &lint.FieldRule{
2424
Name: lint.NewRuleName(131, "request-name-reference"),
2525
OnlyIf: func(f *desc.FieldDescriptor) bool {
26-
return isGetRequestMessage(f.GetOwner()) && f.GetName() == "name"
26+
return utils.IsGetRequestMessage(f.GetOwner()) && f.GetName() == "name"
2727
},
2828
LintField: utils.LintFieldResourceReference,
2929
}

rules/aip0131/request_name_reference_type.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import (
2525
var requestNameReferenceType = &lint.FieldRule{
2626
Name: lint.NewRuleName(131, "request-name-reference-type"),
2727
OnlyIf: func(f *desc.FieldDescriptor) bool {
28-
return isGetRequestMessage(f.GetOwner()) && f.GetName() == "name" && utils.GetResourceReference(f) != nil
28+
return utils.IsGetRequestMessage(f.GetOwner()) && f.GetName() == "name" && utils.GetResourceReference(f) != nil
2929
},
3030
LintField: func(f *desc.FieldDescriptor) []lint.Problem {
3131
if ref := utils.GetResourceReference(f); ref.GetType() == "" {

rules/aip0131/request_name_required.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ import (
1818
"fmt"
1919

2020
"github.com/googleapis/api-linter/lint"
21+
"github.com/googleapis/api-linter/rules/internal/utils"
2122
"github.com/jhump/protoreflect/desc"
2223
)
2324

2425
// The Get standard method should have some required fields.
2526
var requestNameRequired = &lint.MessageRule{
2627
Name: lint.NewRuleName(131, "request-name-required"),
27-
OnlyIf: isGetRequestMessage,
28+
OnlyIf: utils.IsGetRequestMessage,
2829
LintMessage: func(m *desc.MessageDescriptor) []lint.Problem {
2930
if m.FindFieldByName("name") == nil {
3031
return []lint.Problem{{

rules/aip0131/request_required_fields.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import (
2626
// The get request message should not have unrecognized fields.
2727
var requestRequiredFields = &lint.MessageRule{
2828
Name: lint.NewRuleName(131, "request-required-fields"),
29-
OnlyIf: isGetRequestMessage,
29+
OnlyIf: utils.IsGetRequestMessage,
3030
LintMessage: func(m *desc.MessageDescriptor) (problems []lint.Problem) {
3131
// Rule check: Establish that there are no unexpected fields.
3232
allowedRequiredFields := stringset.New("name")

rules/aip0131/request_unknown_fields.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,15 @@ import (
2020
"bitbucket.org/creachadair/stringset"
2121

2222
"github.com/googleapis/api-linter/lint"
23+
"github.com/googleapis/api-linter/rules/internal/utils"
2324
"github.com/jhump/protoreflect/desc"
2425
)
2526

2627
// Get methods should not have unrecognized fields.
2728
var unknownFields = &lint.FieldRule{
2829
Name: lint.NewRuleName(131, "request-unknown-fields"),
2930
OnlyIf: func(f *desc.FieldDescriptor) bool {
30-
return isGetRequestMessage(f.GetOwner())
31+
return utils.IsGetRequestMessage(f.GetOwner())
3132
},
3233
LintField: func(field *desc.FieldDescriptor) []lint.Problem {
3334
allowedFields := stringset.New("name", "read_mask", "view")

rules/aip0132/aip0132.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@
1616
package aip0132
1717

1818
import (
19-
"regexp"
20-
2119
"github.com/googleapis/api-linter/lint"
22-
"github.com/googleapis/api-linter/rules/aip0162"
23-
"github.com/jhump/protoreflect/desc"
2420
)
2521

2622
// AddRules adds all of the AIP-132 rules to the provided registry.
@@ -46,18 +42,3 @@ func AddRules(r lint.RuleRegistry) error {
4642
unknownFields,
4743
)
4844
}
49-
50-
var (
51-
listReqMessageRegexp = regexp.MustCompile("^List[A-Za-z0-9]*Request$")
52-
listRespMessageRegexp = regexp.MustCompile("^List([A-Za-z0-9]*)Response$")
53-
)
54-
55-
// Return true if this is an AIP-132 List request message, false otherwise.
56-
func isListRequestMessage(m *desc.MessageDescriptor) bool {
57-
return listReqMessageRegexp.MatchString(m.GetName()) && !aip0162.IsListRevisionsRequestMessage(m)
58-
}
59-
60-
// Return true if this is an AIP-132 List response message, false otherwise.
61-
func isListResponseMessage(m *desc.MessageDescriptor) bool {
62-
return listRespMessageRegexp.MatchString(m.GetName()) && !aip0162.IsListRevisionsResponseMessage(m)
63-
}

rules/aip0132/request_field_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ var knownFields = map[string]func(*desc.FieldDescriptor) []lint.Problem{
3030
var requestFieldTypes = &lint.FieldRule{
3131
Name: lint.NewRuleName(132, "request-field-types"),
3232
OnlyIf: func(f *desc.FieldDescriptor) bool {
33-
return isListRequestMessage(f.GetOwner()) && knownFields[f.GetName()] != nil
33+
return utils.IsListRequestMessage(f.GetOwner()) && knownFields[f.GetName()] != nil
3434
},
3535
LintField: func(f *desc.FieldDescriptor) []lint.Problem {
3636
return knownFields[f.GetName()](f)

0 commit comments

Comments
 (0)