Skip to content

Commit d83d659

Browse files
committed
Address PR feedback
1 parent 092c8ef commit d83d659

File tree

1 file changed

+13
-10
lines changed
  • cmd/buf-plugin-required-fields

1 file changed

+13
-10
lines changed

cmd/buf-plugin-required-fields/main.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// Package main implements a plugin that checks that:
22
// - entity-related messages (e.g: Cluster) define a known set of common fields
3-
// for the Qdrant Cloud API.
3+
// for the Qdrant Cloud API. Default values: id, name, account_id, created_at
44
// - Request messages (e.g: ListClusters) define a known set of common fields
5-
// for the Qdrant Cloud API.
5+
// for the Qdrant Cloud API. Default values: account_id
66
//
77
// To use this plugin:
88
//
@@ -48,7 +48,7 @@ var (
4848
requiredRequestFieldsRuleSpec = &check.RuleSpec{
4949
ID: requiredRequestFieldsRuleID,
5050
Default: true,
51-
Purpose: `Checks that all request methods (e.g: ListClutersRequest) define a known set of fields for the Qdrant Cloud API.`,
51+
Purpose: `Checks that all request methods (e.g: ListClustersRequest) define a known set of fields for the Qdrant Cloud API.`,
5252
Type: check.RuleTypeLint,
5353
Handler: checkutil.NewMessageRuleHandler(checkRequestFields, checkutil.WithoutImports()),
5454
}
@@ -64,9 +64,10 @@ var (
6464
},
6565
}
6666

67-
crudMethodPrefixes = []string{"List", "Get", "Delete", "Update", "Create"}
68-
defaultRequiredFields = []string{"id", "name", "account_id", "created_at"}
69-
defaultRequiredRequestFields = []string{"account_id"}
67+
crudMethodPrefixes = []string{"List", "Get", "Delete", "Update", "Create"}
68+
crudMethodWithoutFullEntityPrefixes = []string{"List", "Get", "Delete"}
69+
defaultRequiredFields = []string{"id", "name", "account_id", "created_at"}
70+
defaultRequiredRequestFields = []string{"account_id"}
7071
)
7172

7273
func main() {
@@ -102,10 +103,12 @@ func checkRequestFields(ctx context.Context, responseWriter check.ResponseWriter
102103
return nil
103104
}
104105
var requiredFields []string
105-
if strings.HasPrefix(msgName, "List") || strings.HasPrefix(msgName, "Get") || strings.HasPrefix(msgName, "Delete") {
106-
requiredFields = defaultRequiredRequestFields
107-
} else {
108-
return nil
106+
// For Create/Update methods it would be useful to check for the
107+
// `{entity}_id` field. We could add it later as an improvement.
108+
for _, prefix := range crudMethodWithoutFullEntityPrefixes {
109+
if strings.HasPrefix(msgName, prefix) {
110+
requiredFields = defaultRequiredRequestFields
111+
}
109112
}
110113
missingFields := findMissingFields(messageDescriptor, requiredFields)
111114
if len(missingFields) > 0 {

0 commit comments

Comments
 (0)