Files
YandexMusic/YandexMusic.API/Requests/Playlist/YPlaylistChangeBuilder.cs
2026-04-10 12:12:33 +03:00

35 lines
1.3 KiB
C#

using System.Net;
using YandexMusic.API.Common;
using YandexMusic.API.Models.Common;
using YandexMusic.API.Models.Playlist;
using YandexMusic.API.Requests.Common;
using YandexMusic.API.Requests.Common.Attributes;
namespace YandexMusic.API.Requests.Playlist
{
[YApiRequest(WebRequestMethods.Http.Post, "users/{uid}/playlists/{kind}/change")]
public class YPlaylistChangeBuilder : YRequestBuilder<YResponse<YPlaylist>, (YPlaylist playlist, IEnumerable<YPlaylistChange> changes)>
{
public YPlaylistChangeBuilder(YandexMusicApi yandex, AuthStorage auth) : base(yandex, auth)
{
}
protected override Dictionary<string, string> GetSubstitutions((YPlaylist playlist, IEnumerable<YPlaylistChange> changes) tuple)
{
return new Dictionary<string, string> {
{ "uid", storage.User.Uid },
{ "kind", tuple.playlist.Kind }
};
}
protected override HttpContent GetContent((YPlaylist playlist, IEnumerable<YPlaylistChange> changes) tuple)
{
return new FormUrlEncodedContent(new Dictionary<string, string> {
{ "kind", tuple.playlist.Kind },
{ "revision", tuple.playlist.Revision.ToString() },
{ "diff", SerializeJson(tuple.changes) }
});
}
}
}