2026-03-18 11:27:11 +01:00
|
|
|
using CPATapi.Server.Models;
|
|
|
|
|
using Dapper;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.Data.SqlClient;
|
|
|
|
|
|
|
|
|
|
namespace CPATapi.Server.Controllers
|
|
|
|
|
{
|
|
|
|
|
[Route("[controller]")]
|
|
|
|
|
[ApiController]
|
2026-03-18 11:38:04 +01:00
|
|
|
public class CallerIdController(IConfiguration config) : ControllerBase
|
2026-03-18 11:27:11 +01:00
|
|
|
{
|
|
|
|
|
[HttpGet, Route("{number}")]
|
|
|
|
|
public async Task<TapiContact> CallerIdAsync([FromRoute] string number)
|
|
|
|
|
{
|
|
|
|
|
if (number.Length >= 5)
|
|
|
|
|
{
|
|
|
|
|
var minMatch = number[^5..];
|
|
|
|
|
number = "%" + minMatch;
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-18 11:38:04 +01:00
|
|
|
await using var con = new SqlConnection(config["Db:ConnectionString"]);
|
2026-03-18 11:27:11 +01:00
|
|
|
await con.OpenAsync();
|
|
|
|
|
|
2026-03-18 11:38:04 +01:00
|
|
|
var result = await con.QueryFirstOrDefaultAsync<TapiContact>("""
|
|
|
|
|
SELECT
|
|
|
|
|
TD_ID,
|
|
|
|
|
TD_NAME,
|
|
|
|
|
TD_NUMBER,
|
|
|
|
|
TD_NUMBER_TAPI,
|
|
|
|
|
TD_MEDIUM
|
|
|
|
|
FROM dbo.CP_TAPI_DIRECTORY
|
|
|
|
|
WHERE TD_NUMBER_TAPI LIKE @number
|
|
|
|
|
""", new {number});
|
2026-03-18 11:27:11 +01:00
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|