fix: removed sortPayload and sortParams from the reference (#1238)

Removed sortPayload and sortParams from the reference

---------

Co-authored-by: Averi Kitsch <akitsch@google.com>
This commit is contained in:
Ganga4060
2025-12-11 00:49:07 +05:30
committed by GitHub
parent 78b02f08c3
commit c5a6daa768
3 changed files with 13 additions and 41 deletions

View File

@@ -64,5 +64,3 @@ tools:
| filterParams | list | false | A list of parameter objects that define the variables used in the `filterPayload`. |
| projectPayload | string | false | An optional MongoDB projection document to specify which fields to include (1) or exclude (0) in the result. |
| projectParams | list | false | A list of parameter objects for the `projectPayload`. |
| sortPayload | string | false | An optional MongoDB sort document. Useful for selecting which document to return if the filter matches multiple (e.g., get the most recent). |
| sortParams | list | false | A list of parameter objects for the `sortPayload`. |

View File

@@ -58,8 +58,6 @@ type Config struct {
FilterParams parameters.Parameters `yaml:"filterParams"`
ProjectPayload string `yaml:"projectPayload"`
ProjectParams parameters.Parameters `yaml:"projectParams"`
SortPayload string `yaml:"sortPayload"`
SortParams parameters.Parameters `yaml:"sortParams"`
}
// validate interface
@@ -83,7 +81,7 @@ func (cfg Config) Initialize(srcs map[string]sources.Source) (tools.Tool, error)
}
// Create a slice for all parameters
allParameters := slices.Concat(cfg.FilterParams, cfg.ProjectParams, cfg.SortParams)
allParameters := slices.Concat(cfg.FilterParams, cfg.ProjectParams)
// Verify no duplicate parameter names
err := parameters.CheckDuplicateParameters(allParameters)
@@ -123,34 +121,6 @@ type Tool struct {
mcpManifest tools.McpManifest
}
func getOptions(sortParameters parameters.Parameters, projectPayload string, paramsMap map[string]any) (*options.FindOneOptions, error) {
opts := options.FindOne()
sort := bson.M{}
for _, p := range sortParameters {
sort[p.GetName()] = paramsMap[p.GetName()]
}
opts = opts.SetSort(sort)
if len(projectPayload) == 0 {
return opts, nil
}
result, err := parameters.PopulateTemplateWithJSON("MongoDBFindOneProjectString", projectPayload, paramsMap)
if err != nil {
return nil, fmt.Errorf("error populating project payload: %s", err)
}
var projection any
err = bson.UnmarshalExtJSON([]byte(result), false, &projection)
if err != nil {
return nil, fmt.Errorf("error unmarshalling projection: %s", err)
}
opts = opts.SetProjection(projection)
return opts, nil
}
func (t Tool) Invoke(ctx context.Context, resourceMgr tools.SourceProvider, params parameters.ParamValues, accessToken tools.AccessToken) (any, error) {
paramsMap := params.AsMap()
@@ -160,9 +130,18 @@ func (t Tool) Invoke(ctx context.Context, resourceMgr tools.SourceProvider, para
return nil, fmt.Errorf("error populating filter: %s", err)
}
opts, err := getOptions(t.SortParams, t.ProjectPayload, paramsMap)
if err != nil {
return nil, fmt.Errorf("error populating options: %s", err)
opts := options.FindOne()
if len(t.ProjectPayload) > 0 {
result, err := parameters.PopulateTemplateWithJSON("MongoDBFindOneProjectString", t.ProjectPayload, paramsMap)
if err != nil {
return nil, fmt.Errorf("error populating project payload: %s", err)
}
var projection any
err = bson.UnmarshalExtJSON([]byte(result), false, &projection)
if err != nil {
return nil, fmt.Errorf("error unmarshalling projection: %s", err)
}
opts = opts.SetProjection(projection)
}
var filter = bson.D{}

View File

@@ -56,9 +56,6 @@ func TestParseFromYamlMongoQuery(t *testing.T) {
projectPayload: |
{ name: 1, age: 1 }
projectParams: []
sortPayload: |
{ timestamp: -1 }
sortParams: []
`,
want: server.ToolConfigs{
"example_tool": mongodbfindone.Config{
@@ -81,8 +78,6 @@ func TestParseFromYamlMongoQuery(t *testing.T) {
},
ProjectPayload: "{ name: 1, age: 1 }\n",
ProjectParams: parameters.Parameters{},
SortPayload: "{ timestamp: -1 }\n",
SortParams: parameters.Parameters{},
},
},
},