Files
ColaFlow/colaflow-api/src/ColaFlow.API/Controllers/TenantsController.cs
Yaojia Wang a220e5d5d7
Some checks failed
Code Coverage / Generate Coverage Report (push) Has been cancelled
Tests / Run Tests (9.0.x) (push) Has been cancelled
Tests / Docker Build Test (push) Has been cancelled
Tests / Test Summary (push) Has been cancelled
Refactor
2025-11-03 21:02:14 +01:00

49 lines
1.4 KiB
C#

using ColaFlow.Modules.Identity.Application.Commands.RegisterTenant;
using ColaFlow.Modules.Identity.Application.Queries.GetTenantBySlug;
using MediatR;
using Microsoft.AspNetCore.Mvc;
namespace ColaFlow.API.Controllers;
[ApiController]
[Route("api/[controller]")]
public class TenantsController(IMediator mediator) : ControllerBase
{
/// <summary>
/// Register a new tenant (company signup)
/// </summary>
[HttpPost("register")]
public async Task<IActionResult> Register([FromBody] RegisterTenantCommand command)
{
var result = await mediator.Send(command);
return Ok(result);
}
/// <summary>
/// Get tenant by slug (for login page tenant resolution)
/// </summary>
[HttpGet("{slug}")]
public async Task<IActionResult> GetBySlug(string slug)
{
var query = new GetTenantBySlugQuery(slug);
var result = await mediator.Send(query);
if (result == null)
return NotFound(new { message = "Tenant not found" });
return Ok(result);
}
/// <summary>
/// Check if tenant slug is available
/// </summary>
[HttpGet("check-slug/{slug}")]
public async Task<IActionResult> CheckSlug(string slug)
{
var query = new GetTenantBySlugQuery(slug);
var result = await mediator.Send(query);
return Ok(new { available = result == null });
}
}