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