Table of Contents

Class CommunicationsController

Namespace
KadicErp.WebApi.Controllers.Academy
Assembly
KadicErp.WebApi.dll

US#10 (#8490) — Comunicaciones WhatsApp (plantillas + envío). Reusa la infraestructura de WhatsApp ya existente (IModuleNotificationDispatcher) — no se agrega ningún cliente HTTP.

[ApiController]
[Route("api/academies/communications")]
[Authorize]
[RequireModule("ACADEMY")]
public class CommunicationsController : ControllerBase
Inheritance
object
ControllerBase
CommunicationsController

Constructors

CommunicationsController(IMediator, ICurrentUser)

public CommunicationsController(IMediator mediator, ICurrentUser currentUser)

Parameters

mediator IMediator
currentUser ICurrentUser

Methods

CreateTemplate(TemplateBody, CancellationToken)

[HttpPost("templates")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_TEMPLATE_CREATE")]
public Task<IActionResult> CreateTemplate(TemplateBody body, CancellationToken cancellationToken)

Parameters

body TemplateBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetBatchDetail(Guid, CancellationToken)

[HttpGet("history/{batchId:guid}")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_HISTORY_VIEW")]
public Task<IActionResult> GetBatchDetail(Guid batchId, CancellationToken cancellationToken)

Parameters

batchId Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetHistory(CancellationToken)

[HttpGet("history")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_HISTORY_VIEW")]
public Task<IActionResult> GetHistory(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

Returns

Task<IActionResult>

GetKpis(CancellationToken)

[HttpGet("kpis")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_VIEW")]
public Task<IActionResult> GetKpis(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

Returns

Task<IActionResult>

GetTemplates(bool?, CancellationToken)

[HttpGet("templates")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_VIEW")]
public Task<IActionResult> GetTemplates(bool? activeOnly, CancellationToken cancellationToken)

Parameters

activeOnly bool?
cancellationToken CancellationToken

Returns

Task<IActionResult>

Send(SendBody, CancellationToken)

[HttpPost("send")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_SEND")]
public Task<IActionResult> Send(SendBody body, CancellationToken cancellationToken)

Parameters

body SendBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

ToggleTemplate(Guid, ToggleTemplateBody, CancellationToken)

[HttpPatch("templates/{id:guid}")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_TEMPLATE_TOGGLE")]
public Task<IActionResult> ToggleTemplate(Guid id, ToggleTemplateBody body, CancellationToken cancellationToken)

Parameters

id Guid
body ToggleTemplateBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

UpdateTemplate(Guid, TemplateBody, CancellationToken)

[HttpPut("templates/{id:guid}")]
[Authorize(Policy = "ACADEMY_COMMUNICATIONS_TEMPLATE_EDIT")]
public Task<IActionResult> UpdateTemplate(Guid id, TemplateBody body, CancellationToken cancellationToken)

Parameters

id Guid
body TemplateBody
cancellationToken CancellationToken

Returns

Task<IActionResult>