package client import ( "context" "fmt" "gitea.mrixs.me/Mrixs/yandex-music-api-go/internal/models" ) // GetClips gets clips func (c *Client) GetClips(ctx context.Context, page, pageSize int) ([]*models.Clip, error) { params := map[string]string{ "page": "1", "page_size": "20", } if page > 0 { params["page"] = fmt.Sprintf("%d", page) } if pageSize > 0 { params["page_size"] = fmt.Sprintf("%d", pageSize) } var result []models.Clip if err := c.request.Get(ctx, "/clips", params, &result); err != nil { return nil, err } clips := make([]*models.Clip, len(result)) for i := range result { result[i].SetClient(c) clips[i] = &result[i] } return clips, nil } // GetClipsWillLike gets clips the user might like func (c *Client) GetClipsWillLike(ctx context.Context) (*models.ClipsWillLike, error) { var result models.ClipsWillLike if err := c.request.Get(ctx, "/clips/will/like", nil, &result); err != nil { return nil, err } return &result, nil } // GetArtistClips gets clips by an artist // GET /artists/{artistID}/blocks/artist-clips func (c *Client) GetArtistClips(ctx context.Context, artistID string) (*models.ArtistClipData, error) { var result models.ArtistClipData if err := c.request.Get(ctx, fmt.Sprintf("/artists/%s/blocks/artist-clips", artistID), nil, &result); err != nil { return nil, err } return &result, nil } // GetShots gets shots func (c *Client) GetShots(ctx context.Context, page, pageSize int) ([]*models.Shot, error) { params := map[string]string{ "page": "1", "page_size": "20", } if page > 0 { params["page"] = fmt.Sprintf("%d", page) } if pageSize > 0 { params["page_size"] = fmt.Sprintf("%d", pageSize) } var result []models.Shot if err := c.request.Get(ctx, "/shots", params, &result); err != nil { return nil, err } shots := make([]*models.Shot, len(result)) for i := range result { result[i].SetClient(c) shots[i] = &result[i] } return shots, nil }