Files
3cx_tapi/server/src/CPATapi.Server/Controllers/SearchController.cs
T

26 lines
757 B
C#
Raw Normal View History

2026-03-18 11:27:11 +01:00
using System.Text.RegularExpressions;
2026-03-19 13:35:53 +01:00
using CPATapi.Server.Interfaces;
2026-03-18 11:27:11 +01:00
using CPATapi.Server.Models;
using Microsoft.AspNetCore.Mvc;
2026-03-19 13:35:53 +01:00
namespace CPATapi.Server.Controllers;
[Route("[controller]")]
[ApiController]
public class SearchController(ITapiDirectoryRepository tapiDirectory) : ControllerBase
2026-03-18 11:27:11 +01:00
{
2026-03-19 13:35:53 +01:00
[HttpGet]
[ProducesResponseType<IEnumerable<TapiContact>>(StatusCodes.Status200OK)]
public async Task<IActionResult> SearchAsync([FromQuery] string query)
2026-03-18 11:27:11 +01:00
{
2026-03-19 13:35:53 +01:00
if (query == null)
2026-03-18 11:27:11 +01:00
{
2026-03-19 13:35:53 +01:00
return Ok(new List<TapiContact>());
2026-03-18 11:27:11 +01:00
}
2026-03-19 13:35:53 +01:00
var args = Regex.Split(query, "\\s").Where(s => !string.IsNullOrWhiteSpace(s)).Select(s => s.Trim()).ToArray();
return Ok(await tapiDirectory.SearchAsync(args));
2026-03-18 11:27:11 +01:00
}
}