Table of Contents

Class InstructorsController

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

US#25 — catálogo mínimo de instructores. Desbloquea US#3 (creación de grupos), que exige instructorId. US#19 (#8499) enriquece el DTO, añade /agenda y los campos ricos de alta/edición — mismo controlador, misma tabla, sin duplicar nada.

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

Constructors

InstructorsController(IMediator)

public InstructorsController(IMediator mediator)

Parameters

mediator IMediator

Methods

Create(CreateInstructorCommand, CancellationToken)

[HttpPost]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_CREATE")]
public Task<IActionResult> Create(CreateInstructorCommand command, CancellationToken cancellationToken)

Parameters

command CreateInstructorCommand
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetAgenda(Guid, CancellationToken)

US#19 (#8499) CA3/CA6 — agenda semanal, nueva en esta US.

[HttpGet("{id:guid}/agenda")]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_VIEW_AGENDA")]
public Task<IActionResult> GetAgenda(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetAll(bool, CancellationToken)

[HttpGet]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_VIEW")]
public Task<IActionResult> GetAll(bool onlyActive, CancellationToken cancellationToken)

Parameters

onlyActive bool
cancellationToken CancellationToken

Returns

Task<IActionResult>

GetById(Guid, CancellationToken)

[HttpGet("{id:guid}")]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_VIEW_DETAIL")]
public Task<IActionResult> GetById(Guid id, CancellationToken cancellationToken)

Parameters

id Guid
cancellationToken CancellationToken

Returns

Task<IActionResult>

SetActive(Guid, SetInstructorActiveBody, CancellationToken)

[HttpPatch("{id:guid}/active")]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_DEACTIVATE")]
public Task<IActionResult> SetActive(Guid id, SetInstructorActiveBody body, CancellationToken cancellationToken)

Parameters

id Guid
body SetInstructorActiveBody
cancellationToken CancellationToken

Returns

Task<IActionResult>

Update(Guid, UpdateInstructorBody, CancellationToken)

[HttpPut("{id:guid}")]
[Authorize(Policy = "ACADEMY_INSTRUCTORS_UPDATE")]
public Task<IActionResult> Update(Guid id, UpdateInstructorBody body, CancellationToken cancellationToken)

Parameters

id Guid
body UpdateInstructorBody
cancellationToken CancellationToken

Returns

Task<IActionResult>