using Dpz.Core.EnumLibrary;
using Dpz.Core.Service.ObjectStorage.Services;

namespace Dpz.Core.Web.Controllers;

public class MusicController(
    IMusicService musicService,
    IObjectStorageOperation objectStorageService,
    OwnerService ownerService
) : Controller
{
    [CheckAuthorize(Permissions = Permissions.System), HttpPost]
    public async Task<IActionResult> Delete(string id)
    {
        await musicService.DeleteAsync(id, objectStorageService.DeleteMusicAsync);
        return Json(new ResultInfo(true));
    }

    [Route("[controller]/Recommend/v2")]
    public async Task<IActionResult> RecommendVersion2()
    {
        var defaultCover = $"{ownerService.S3Host}/images/music.png";
        var list = await musicService.GetTopMusicsAsync(500);
        list.ForEach(x =>
        {
            if (string.IsNullOrWhiteSpace(x.CoverUrl))
            {
                x.CoverUrl = defaultCover;
            }
        });
        Response.Headers.CacheControl = "public, max-age=3600";
        return Json(list);
    }
}
评论加载中...