Добавлен пункт "мои плейлисты"

This commit is contained in:
FrigaT
2026-04-23 18:05:07 +03:00
parent 362762a813
commit d6da8460cc
7 changed files with 161 additions and 24 deletions

View File

@@ -28,13 +28,13 @@ public class YandexSearchController : ControllerBase
[HttpGet("search")]
public async Task<ActionResult<ApiResponse<YandexSearchResult>>> SearchQuery(
[FromQuery] string query,
[FromQuery] int limit = 20,
[FromQuery] string query = "",
[FromQuery] int limit = 40,
[FromQuery] TrackSearchType searchType = TrackSearchType.All,
[FromQuery] bool byId = false,
[FromQuery] string? shared_id = null)
{
if (string.IsNullOrWhiteSpace(query))
if (string.IsNullOrWhiteSpace(query) && searchType != TrackSearchType.MyPlaylists)
return BadRequest(ApiResponse<YandexSearchResult>.Fail(new ErrorResponse
{
StatusCode = 400,
@@ -46,6 +46,8 @@ public class YandexSearchController : ControllerBase
if (userId.HasValue)
user = await _userManager.FindByIdAsync(userId.Value.ToString());
var byShareId = false;
// Если нет пользователя или у него нет токена, пробуем через shared_id
if (user == null || string.IsNullOrEmpty(user.YandexAccessToken))
{
@@ -61,6 +63,8 @@ public class YandexSearchController : ControllerBase
var owner = await _userManager.FindByIdAsync(playlist.CreatorUserId.ToString());
if (owner == null) return StatusCode(500, "Не удалось найти владельца плейлиста.");
user = owner;
byShareId = true;
}
if (string.IsNullOrEmpty(user.YandexAccessToken))
@@ -74,7 +78,16 @@ public class YandexSearchController : ControllerBase
if (byId)
{
results = await _yandexService.SearchTracksByIdAsync(user, query, searchType, limit);
results = await _yandexService.SearchTracksByIdAsync(user, query, searchType);
}
else if (searchType == TrackSearchType.MyPlaylists)
{
if (byShareId)
{
return Unauthorized("Необходимо подключение профиля к яндекс музыке.");
}
results = await _yandexService.SearchMyPlaylists(user);
}
else
{