namespace PARR.API.Contracts.V1
{
// https://tproger.ru/translations/luchshie-praktiki-razrabotki-rest-api-20-sovetov/
//----------URL должен отражать структуру вложенных ресурсов----------
// GET /shops/2/products получить список продуктов из магазина 2.
// GET /shops/2/products/31 получить детали продукта 31 из магазина 2.
// DELETE /shops/2/products/31 удалить продукт 31 из магазина 2.
// PUT /shops/2/products/31 обновить данные о продукте 31. Используйте PUT на URL ресурса, а не коллекции.
// POST /shops создать новый магазин и вернуть данные о нём.Используйте POST на URL коллекции.
//---------URL должен начинаться с коллекции и заканчиваться идентификатором---------
// GET /shops/:shopId/ или GET /category/:categoryId
public static class ApiRoutes
{
public const string Root = "api";
public const string Version = "v1";
public const string Base = Root + "/" + Version;
///
/// Статистика
///
public const string BaseStat = Base + "/statistics";
public static class ApiStatus
{
public const string Version = Base + "/version";
public const string Health = Base + "/health";
public const string Metrics = Base + "/metrics";
}
public static class AgentTask
{
public const string GetByIp = Base + "/agent-tasks/ip";
}
//public static class EsppData
//{
// public const string UploadTemplates = Base + "/espp-data/templates";
//}
public static class Test
{
public const string GetMyIp = Base + "/tests/my-ip";
public const string GetNextScheduleDate = Base + "/tests/next-schedule-date/" + paramApplicationInWorkId + "/" + paramDate;
public const string GetNextSchedule = Base + "/tests/next-schedule/" + paramApplicationInWorkId + "/" + paramDate;
public const string CreateCache = Base + "/tests/cache/";
public const string paramDate = "{lastRunDate}";
public const string paramApplicationInWorkId = "{applicationInWorkId}";
}
public static class Template
{
public const string GetAll = Base + "/templates/";
public const string Get = Base + "/templates/" + getParam;
public const string ChangeState = Base + "/templates/" + getParam + "/change-state";
//public const string SetOkStatus = Base + "/templates/" + getParam + "/status/ok";
//public const string GetByStatusCode = Base + "/templates/status/{statusCode}";
public const string getParam = "{id}";
}
public static class TemplateScheduleEspp
{
public const string Get = Base + "/templates/" + templateId + "/schedule-esppid";
public const string Create = Base + "/templates/" + templateId + "/schedule-esppid";
public const string templateId = "{templateId}";
}
public static class Robot
{
public const string GetAll = Base + "/robots/";
}
public static class RobotHistory
{
public const string GetAll = Base + "/robot-histories/";
public const string Create = Base + "/robot-histories/";
}
public static class TaskStatus
{
public const string GetAll = Base + "/task-statuses/";
}
public static class GeneratorTemplate
{
public const string Create = Base + "/generator-templates/";
}
public static class Host
{
public const string GetAll = Base + "/hosts/";
public const string Get = Base + "/hosts/" + getParam;
public const string getParam = "{id}";
}
public static class WorkGroup
{
public const string GetAll = Base + "/work-groups/";
public const string Get = Base + "/work-groups/" + getParam;
public const string getParam = "{id}";
}
public static class ResponseArea
{
public const string GetAll = Base + "/response-areas/";
public const string Get = Base + "/response-areas/" + getParam;
public const string getParam = "{responseAreaCode}";
}
public static class RobotHistoryLevel
{
public const string GetAll = Base + "/robot-history-levels/";
}
public static class RobotTask
{
public const string GetByRobotAndStatusTask = Base + "/robot-tasks/robots/" + robotCode + "/statuses/" + taskStatusCode;
public const string robotCode = "{robotCode}";
public const string taskStatusCode = "{taskStatusCode}";
}
public static class RobotTaskRobotStatus
{
public const string ChangeRobotStatus = Base + "/robot-tasks/" + taskId + "/robot-status";
public const string taskId = "{taskId}";
}
public static class AgentHistory
{
public const string GetAll = Base + "/agent-histories/";
public const string Get = Base + "/agent-histories/" + getParam;
public const string Create = Base + "/agent-histories/";
public const string getParam = "{id}";
}
#region User
public static class User
{
public const string GetAll = Base + "/users/";
public const string Get = Base + "/users/" + getParam;
public const string Delete = Base + "/users/" + getParam;
public const string Create = Base + "/users/";
public const string Update = Base + "/users/" + getParam;
public const string getParam = "{id}";
}
public static class UserRoles
{
public const string Get = Base + "/users/" + userParam + "/roles/";
public const string AddRole = Base + "/users/" + userParam + "/roles/";
public const string DeleteRole = Base + "/users/" + userParam + "/roles/" + roleParam;
public const string userParam = "{userId}";
public const string roleParam = "{roleId}";
}
public static class Role
{
public const string GetAll = Base + "/roles/";
}
public static class UserProfile
{
public const string Get = Base + "/user-profile/";
}
#endregion
#region Статистика
public static class StatRobotTask
{
public const string Get = BaseStat + "/robot-tasks/";
public const string GetPeriodStatistics = BaseStat + "/robot-tasks/{robot}/period/";
}
public static class StatRobotStatus
{
public const string Get = BaseStat + "/robot-statuses/";
}
public static class StatRobotHistory
{
public const string Get = BaseStat + "/robot-histories/";
}
public static class StatTemplate
{
public const string Get = BaseStat + "/templates/";
}
public static class StatHost
{
public const string Get = BaseStat + "/hosts/";
public const string GetWithTemplates = BaseStat + "/hosts/templates";
public const string GetForPeriod = BaseStat + "/hosts/period";
}
public static class StatApplication
{
public const string Get = BaseStat + "/applications/";
public const string GetForPeriod = BaseStat + "/applications/period";
}
public static class StatOrder
{
public const string Get = BaseStat + "/orders/";
public const string GetForPeriod = BaseStat + "/orders/period";
public const string TaskToEspp = BaseStat + "/orders/tasks";
public const string Statuses = BaseStat + "/orders/statuses";
public const string GetStatusesLastDay = BaseStat + "/orders/statuses/last-day/{statusCode}";
}
public static class StatRabbitMq
{
public const string GetQueueStats = BaseStat + "/rabbitmq-queues/";
public const string GetConnectionStats = BaseStat + "/rabbitmq-connections/";
}
public static class StatRobotState
{
public const string Get = BaseStat + "/robot-states/{robot}";
public const string Send = BaseStat + "/robot-states/";
}
public static class StatAuth
{
public const string Get = BaseStat + "/auth";
}
public static class StatTemplateDistribution
{
public const string Get = BaseStat + "/template-distribution/{applicationInWorkId}";
}
public static class StatResponseAreaWorkLoad
{
public const string GetAll = BaseStat + "/response-area-workloads/";
public const string GetByResponseAreas = BaseStat + "/response-area-workloads/";
}
public static class StatWorkGroupWorkLoad
{
public const string Get = BaseStat + "/work-group-workloads/{responseAreaCode}";
public const string GetByWorkGroups = BaseStat + "/work-group-workloads/";
}
public static class StatWorkWorkLoad
{
public const string Get = BaseStat + "/work-workloads/{workGroupId}";
public const string GetByApplicationInWork = BaseStat + "/work-workloads/";
}
#endregion
#region Наряды
public static class Order
{
public const string GetAll = Base + "/orders/";
public const string Get = Base + "/orders/" + getParam;
public const string getParam = "{id}";
}
#endregion
#region TNK
public static class Process
{
public const string GetAll = Base + "/processes/";
public const string Get = Base + "/processes/" + getParam;
public const string GetSubprcesses = Base + "/processes/" + getParam + "/subprocesses";
public const string Delete = Base + "/processes/" + getParam;
public const string Create = Base + "/processes/";
public const string Update = Base + "/processes/" + getParam;
public const string getParam = "{id}";
}
public static class Subprocess
{
public const string GetAll = Base + "/subprocesses/";
public const string Get = Base + "/subprocesses/" + getParam;
public const string GetTnks = Base + "/subprocesses/" + getParam + "/tnks";
public const string Delete = Base + "/subprocesses/" + getParam;
public const string Create = Base + "/subprocesses/";
public const string Update = Base + "/subprocesses/" + getParam;
public const string getParam = "{id}";
}
public static class Tnk
{
public const string GetAll = Base + "/tnks/";
public const string Get = Base + "/tnks/" + getParam;
public const string GetWorks = Base + "/tnks/" + getParam + "/works";
public const string Delete = Base + "/tnks/" + getParam;
public const string Create = Base + "/tnks/";
public const string Update = Base + "/tnks/" + getParam;
public const string getParam = "{id}";
}
public static class Work
{
public const string GetAll = Base + "/works/";
public const string Get = Base + "/works/" + getParam;
public const string Delete = Base + "/works/" + getParam;
public const string Create = Base + "/works/";
public const string Update = Base + "/works/" + getParam;
public const string getParam = "{id}";
}
#endregion
#region Job
///
/// Альтернативная сущность AppliationInWork
///
public static class Job
{
public const string GetAll = Base + "/jobs/";
public const string Get = Base + "/jobs/" + getParam;
public const string Delete = Base + "/jobs/" + getParam;
public const string Create = Base + "/jobs/";
public const string Update = Base + "/jobs/" + getParam;
public const string getParam = "{id}";
}
public static class JobAutoControl
{
public const string Get = Base + "/jobs/" + appInWorkId + "/auto-control";
public const string Create = Base + "/jobs/" + appInWorkId + "/auto-control";
public const string Update = Base + "/jobs/" + appInWorkId + "/auto-control";
public const string Delete = Base + "/jobs/" + appInWorkId + "/auto-control";
public const string appInWorkId = "{applicationInWorkId}";
}
///
/// Активатор/деактиватор шаблонов/расписаний
///
public static class TemplateActivator
{
public const string SendRequest = Base + "/jobs/" + appInWorkId + "/template-activator";
public const string appInWorkId = "{applicationInWorkId}";
}
#endregion
public static class Application
{
public const string GetAll = Base + "/applications/";
}
public static class ApplicationType
{
public const string GetAll = Base + "/application-types/";
}
public static class EkStatus
{
public const string GetAll = Base + "/ek-statuses/";
public const string getParam = "{id}";
}
#region Расписание ЕСПП
public static class EsppScheduleTypeSchedule
{
public const string GetAll = Base + "/espp-schedule-type-schedules/";
public const string Get = Base + "/espp-schedule-type-schedules/" + getParam;
public const string getParam = "{id}";
}
#endregion
#region Distributor
public static class Distributor
{
public const string Distribute = Base + "/distributor/";
}
#endregion
}
}