87 lines
2.5 KiB
Go
87 lines
2.5 KiB
Go
package meilisearch
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
)
|
|
|
|
// Type for experimental features with additional client field
|
|
type ExperimentalFeatures struct {
|
|
client *client
|
|
ExperimentalFeaturesBase
|
|
}
|
|
|
|
func (m *meilisearch) ExperimentalFeatures() *ExperimentalFeatures {
|
|
return &ExperimentalFeatures{client: m.client}
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) SetLogsRoute(logsRoute bool) *ExperimentalFeatures {
|
|
ef.LogsRoute = &logsRoute
|
|
return ef
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) SetMetrics(metrics bool) *ExperimentalFeatures {
|
|
ef.Metrics = &metrics
|
|
return ef
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) SetEditDocumentsByFunction(editDocumentsByFunction bool) *ExperimentalFeatures {
|
|
ef.EditDocumentsByFunction = &editDocumentsByFunction
|
|
return ef
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) SetContainsFilter(containsFilter bool) *ExperimentalFeatures {
|
|
ef.ContainsFilter = &containsFilter
|
|
return ef
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) Get() (*ExperimentalFeaturesResult, error) {
|
|
return ef.GetWithContext(context.Background())
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) GetWithContext(ctx context.Context) (*ExperimentalFeaturesResult, error) {
|
|
resp := new(ExperimentalFeaturesResult)
|
|
req := &internalRequest{
|
|
endpoint: "/experimental-features",
|
|
method: http.MethodGet,
|
|
withRequest: nil,
|
|
withResponse: &resp,
|
|
withQueryParams: map[string]string{},
|
|
acceptedStatusCodes: []int{http.StatusOK},
|
|
functionName: "GetExperimentalFeatures",
|
|
}
|
|
|
|
if err := ef.client.executeRequest(ctx, req); err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return resp, nil
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) Update() (*ExperimentalFeaturesResult, error) {
|
|
return ef.UpdateWithContext(context.Background())
|
|
}
|
|
|
|
func (ef *ExperimentalFeatures) UpdateWithContext(ctx context.Context) (*ExperimentalFeaturesResult, error) {
|
|
request := ExperimentalFeaturesBase{
|
|
LogsRoute: ef.LogsRoute,
|
|
Metrics: ef.Metrics,
|
|
EditDocumentsByFunction: ef.EditDocumentsByFunction,
|
|
ContainsFilter: ef.ContainsFilter,
|
|
}
|
|
resp := new(ExperimentalFeaturesResult)
|
|
req := &internalRequest{
|
|
endpoint: "/experimental-features",
|
|
method: http.MethodPatch,
|
|
contentType: contentTypeJSON,
|
|
withRequest: request,
|
|
withResponse: resp,
|
|
withQueryParams: nil,
|
|
acceptedStatusCodes: []int{http.StatusOK},
|
|
functionName: "UpdateExperimentalFeatures",
|
|
}
|
|
if err := ef.client.executeRequest(ctx, req); err != nil {
|
|
return nil, err
|
|
}
|
|
return resp, nil
|
|
}
|