using Kit.Helpers.Routes;
using Server.WatchBody.Web.Controllers;
namespace Server.WatchBody.Web.Config;
///
/// Таблица маршрутов REST API v1 (fluent Kit.Helpers.Routes,
/// пример — Kit.Task.WebAp\Task.WebApp\Config\RouteConfig.cs).
///
public class RouteConfig
{
public static void Configure(IRouteBuilder routeBuilder)
{
routeBuilder.AddController()
.ContentAction("health", x => x.Info)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/v1/sync", x => x.Sync)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/v1/workouts", x => x.List)
.NeedHttpGet()
.ActionAction("api/v1/workouts/{id}", x => x.Get)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/v1/programs/active", x => x.Active)
.NeedHttpGet();
// admin-контур (m08): Bearer, отдельный от X-Api-Key.
// по одному блоку на действие: NeedHttpPost_All нельзя чейнить
// на несколько роутов (RouteFluent — дубль ключа httpMethod)
routeBuilder.AddController()
.ActionAction("api/admin/login", x => x.Login)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/admin/logout", x => x.Logout)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/admin/athletes", x => x.List)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/athletes", x => x.Create)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/admin/athletes/{id}/key", x => x.NewKey)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/admin/athletes/{id}/block", x => x.Block)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction(
"api/admin/workouts", x => x.List)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/workouts/{id}", x => x.Get)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/workouts.csv", x => x.Csv)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/programs", x => x.List)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/programs/{versionId}", x => x.Get)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/programs/{versionId}/activate", x => x.Activate)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/admin/programs/{versionId}/apply", x => x.Apply)
.NeedHttpPost_All();
routeBuilder.AddController()
.ActionAction("api/admin/metrics", x => x.Metrics)
.NeedHttpGet();
routeBuilder.AddController()
.ActionAction("api/admin/plan", x => x.Plan)
.NeedHttpGet();
}
}