51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using Management.Data;
|
|
using Management.Security;
|
|
using Management.Controllers.Admin;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System.Text.Json;
|
|
|
|
namespace Management.Controllers.Admin;
|
|
|
|
/// <summary>
|
|
/// Admin CRUD for help content — requires admin session.
|
|
/// </summary>
|
|
[ApiController]
|
|
[Route("api/admin/help")]
|
|
public class AdminHelpController : AdminControllerBase
|
|
{
|
|
public AdminHelpController(SqlService sql, ClientContext client, ILogger<AdminHelpController> logger)
|
|
: base(sql, client, logger) { }
|
|
|
|
/// <summary>
|
|
/// GET /api/admin/help
|
|
/// List all help content entries (active and inactive).
|
|
/// </summary>
|
|
[HttpPost("list")]
|
|
public async Task<IActionResult> List([FromBody] JsonElement body, CancellationToken ct)
|
|
{
|
|
return await CallProc("spHelp", "list", body.ToString(), ct);
|
|
}
|
|
|
|
/// <summary>
|
|
/// POST /api/admin/help
|
|
/// Create or update a help entry by helpKey (upsert).
|
|
/// Body: { helpKey, title, body, isActive }
|
|
/// </summary>
|
|
[HttpPost]
|
|
public async Task<IActionResult> Upsert([FromBody] JsonElement payload, CancellationToken ct)
|
|
{
|
|
return await CallProc("spHelp", "upsert", payload, ct);
|
|
}
|
|
|
|
/// <summary>
|
|
/// DELETE /api/admin/help/{key}
|
|
/// Delete a help entry by key.
|
|
/// </summary>
|
|
[HttpDelete("{key}")]
|
|
public async Task<IActionResult> Delete(string key, CancellationToken ct)
|
|
{
|
|
return await CallProc("spHelp", "delete",
|
|
new { helpKey = key, adminId = Client.UserId }, ct);
|
|
}
|
|
}
|