package client import ( "encoding/json" "fmt" "git.db.org.ai/dborg/internal/models" "net/url" ) func (c *Client) SearchBuckets(params *models.BucketsSearchParams) (*models.BucketsSearchResponse, error) { path := "/buckets/buckets" queryParams := url.Values{} if params.Limit > 0 { queryParams.Add("limit", fmt.Sprintf("%d", params.Limit)) } if params.Start > 0 { queryParams.Add("start", fmt.Sprintf("%d", params.Start)) } data, err := c.Get(path, queryParams) if err != nil { return nil, err } var response models.BucketsSearchResponse if err := json.Unmarshal(data, &response); err != nil { return nil, fmt.Errorf("failed to parse buckets search response: %w", err) } return &response, nil } func (c *Client) SearchBucketFiles(params *models.BucketsFilesSearchParams) (*models.BucketsFilesSearchResponse, error) { path := "/buckets/files" queryParams := url.Values{} if params.Keywords != "" { queryParams.Add("keywords", params.Keywords) } if params.Extensions != "" { queryParams.Add("extensions", params.Extensions) } if params.Buckets != "" { queryParams.Add("buckets", params.Buckets) } if params.Limit > 0 { queryParams.Add("limit", fmt.Sprintf("%d", params.Limit)) } if params.Start > 0 { queryParams.Add("start", fmt.Sprintf("%d", params.Start)) } data, err := c.Get(path, queryParams) if err != nil { return nil, err } var response models.BucketsFilesSearchResponse if err := json.Unmarshal(data, &response); err != nil { return nil, fmt.Errorf("failed to parse bucket files search response: %w", err) } return &response, nil }