// Package client provides methods for interacting with Yandex Music API endpoints. package client import ( "context" "gitea.mrixs.me/Mrixs/yandex-music-api-go/internal/models" ) // GetSettings gets user settings (GET /account/settings). func (c *Client) GetSettings(ctx context.Context) (*models.AccountSettings, error) { var result models.AccountSettings if err := c.request.Get(ctx, "/account/settings", nil, &result); err != nil { return nil, err } return &result, nil } // UpdateSettings updates user settings (PUT /account/settings). func (c *Client) UpdateSettings(ctx context.Context, settings *models.AccountSettings) (*models.AccountSettings, error) { var result models.AccountSettings if err := c.request.Put(ctx, "/account/settings", settings, &result); err != nil { return nil, err } return &result, nil } // GetExperiments gets experiments (GET /experiments). func (c *Client) GetExperiments(ctx context.Context) (*models.Experiments, error) { var result models.Experiments if err := c.request.Get(ctx, "/experiments", nil, &result); err != nil { return nil, err } return &result, nil } // GetExperimentDetails gets experiment details for the given experiment ID (GET /experiments/details). func (c *Client) GetExperimentDetails(ctx context.Context, experimentID string) (*models.ExperimentDetail, error) { params := map[string]string{ "experiment_id": experimentID, } var result models.ExperimentDetail if err := c.request.Get(ctx, "/experiments/details", params, &result); err != nil { return nil, err } return &result, nil } // GetPermissions gets user permissions (GET /permissions). func (c *Client) GetPermissions(ctx context.Context) (*models.Permissions, error) { var result models.Permissions if err := c.request.Get(ctx, "/permissions", nil, &result); err != nil { return nil, err } return &result, nil } // GetPermissionAlerts gets permission alerts (GET /permission-alerts). func (c *Client) GetPermissionAlerts(ctx context.Context) (*models.PermissionAlerts, error) { var result models.PermissionAlerts if err := c.request.Get(ctx, "/permission-alerts", nil, &result); err != nil { return nil, err } return &result, nil } // GetContentRestrictions gets content restrictions (GET /content-restrictions). func (c *Client) GetContentRestrictions(ctx context.Context) (*models.ContentRestrictions, error) { var result models.ContentRestrictions if err := c.request.Get(ctx, "/content-restrictions", nil, &result); err != nil { return nil, err } return &result, nil }