// 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" ) // GetPins gets user's pins (GET /pins). func (c *Client) GetPins(ctx context.Context) (*models.PinsList, error) { var result models.PinsList if err := c.request.Get(ctx, "/pins", nil, &result); err != nil { return nil, err } return &result, nil } // AddPin adds a pin (POST /pins). func (c *Client) AddPin(ctx context.Context, pinType, entityID string) (*models.Pin, error) { params := map[string]string{ "type": pinType, "entity_id": entityID, } var result models.Pin if err := c.request.Post(ctx, "/pins", params, &result); err != nil { return nil, err } return &result, nil } // RemovePin removes a pin by ID (DELETE /pins). func (c *Client) RemovePin(ctx context.Context, pinID string) error { params := map[string]string{ "pin_id": pinID, } var result map[string]any return c.request.Delete(ctx, "/pins", params, &result) } // GetPresaves gets user's presaves (GET /presaves). func (c *Client) GetPresaves(ctx context.Context) (*models.Presaves, error) { var result models.Presaves if err := c.request.Get(ctx, "/presaves", nil, &result); err != nil { return nil, err } return &result, nil }