Files
jsmr/JSMR.Application/VoiceWorks/Queries/Search/SearchVoiceWorksHandler.cs
2025-09-02 23:44:31 -04:00

31 lines
1.1 KiB
C#

using JSMR.Application.Common.Caching;
using JSMR.Application.VoiceWorks.Ports;
namespace JSMR.Application.VoiceWorks.Queries.Search;
// TODO: Caching?
public sealed class SearchVoiceWorksHandler(IVoiceWorkSearchProvider provider)
{
public async Task<SearchVoiceWorksResponse> HandleAsync(SearchVoiceWorksRequest request, CancellationToken cancellationToken)
{
var searchOptions = request.Options;
//string cacheKey = $"vw:{searchOptions.GetHashCode()}";
//VoiceWorkSearchResults? cachedResults = await cache.GetAsync<VoiceWorkSearchResults>(cacheKey, cancellationToken);
//if (cachedResults != null)
// return new SearchVoiceWorksResponse(cachedResults);
var results = await provider.SearchAsync(searchOptions, cancellationToken);
//CacheEntryOptions cacheEntryOptions = new()
//{
// SlidingExpiration = TimeSpan.FromMinutes(10)
//};
//await cache.SetAsync(cacheKey, results, cacheEntryOptions, cancellationToken);
return new SearchVoiceWorksResponse(results);
}
}