using Backend.ServiceHander; using Microsoft.AspNetCore.Mvc; namespace Backend.Controller { [ApiController] [Route("api/news-sentiment")] public sealed class NewsSentimentController : ControllerBase { private readonly NewsSentimentService _service; public NewsSentimentController(NewsSentimentService service) { _service = service; } [HttpGet] public async Task Analyze( [FromQuery] string keyword, CancellationToken cancellationToken) { try { var results = await _service.AnalyzeAsync(keyword, cancellationToken); return Ok(results.Select(r => new { source = r.Source, keyword = r.Keyword, publishedAt = r.PublishedAt, title = r.Title, score = r.Score, sentimentLabel = r.SentimentLabel, url = r.Url })); } catch (ArgumentException ex) { return BadRequest(ex.Message); } catch (Exception ex) { return StatusCode(500, new { error = ex.ToString() }); } } } }