Modernize and Dockerize server

This commit is contained in:
2026-03-19 13:35:53 +01:00
parent 76a2bf0e88
commit 766ed86999
21 changed files with 364 additions and 161 deletions
@@ -1,37 +1,30 @@
using CPATapi.Server.Interfaces;
using CPATapi.Server.Models;
using Dapper;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Data.SqlClient;
namespace CPATapi.Server.Controllers
namespace CPATapi.Server.Controllers;
[Route("[controller]")]
[ApiController]
public class CallerIdController(ITapiDirectoryRepository tapiDirectory) : ControllerBase
{
[Route("[controller]")]
[ApiController]
public class CallerIdController(IConfiguration config) : ControllerBase
[HttpGet]
[Route("{number}")]
[ProducesResponseType<TapiContact>(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public async Task<IActionResult> CallerIdAsync([FromRoute] string number)
{
[HttpGet, Route("{number}")]
public async Task<TapiContact> CallerIdAsync([FromRoute] string number)
if (number.Length >= 5)
{
if (number.Length >= 5)
{
var minMatch = number[^5..];
number = "%" + minMatch;
}
await using var con = new SqlConnection(config["Db:ConnectionString"]);
await con.OpenAsync();
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});
return result;
var minMatch = number[^5..];
number = "%" + minMatch;
}
var result = await tapiDirectory.SearchByNumberAsync(number);
if (result != null)
{
return Ok(result);
}
return NotFound();
}
}