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(); } }