diff --git a/AsbCloudWebApi/Controllers/CrudController.cs b/AsbCloudWebApi/Controllers/CrudController.cs
index 42d5c405..69ecdb5c 100644
--- a/AsbCloudWebApi/Controllers/CrudController.cs
+++ b/AsbCloudWebApi/Controllers/CrudController.cs
@@ -88,10 +88,11 @@ namespace AsbCloudWebApi.Controllers
/// id
[HttpPost("range")]
[Permission]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public virtual async Task> InsertRangeAsync([FromBody] IEnumerable values, CancellationToken token)
{
if (!values.Any())
- return BadRequest("there is no values to add");
+ return this.ValidationBadRequest(nameof(values), "there is no values to add");
if (InsertForbidAsync is not null)
foreach (var value in values)
@@ -110,6 +111,7 @@ namespace AsbCloudWebApi.Controllers
/// 1 - успешно отредактировано, 0 - нет
[HttpPut]
[Permission]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public virtual async Task> UpdateAsync([FromBody] T value, CancellationToken token)
{
if (UpdateForbidAsync is not null && await UpdateForbidAsync(value, token))
@@ -117,7 +119,7 @@ namespace AsbCloudWebApi.Controllers
var result = await service.UpdateAsync(value, token).ConfigureAwait(false);
if (result == ICrudRepository.ErrorIdNotFound)
- return BadRequest($"id:{value.Id} does not exist in the db");
+ return this.ValidationBadRequest(nameof(value.Id), $"id:{value.Id} does not exist");
return Ok(result);
}
diff --git a/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs b/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs
index 54797cca..389f301c 100644
--- a/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs
+++ b/AsbCloudWebApi/Controllers/PlannedTrajectoryController.cs
@@ -81,6 +81,7 @@ namespace AsbCloudWebApi.Controllers
/// количество успешно записанных строк в БД
[HttpPost("import/{deleteBeforeImport}")]
[ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public async Task ImportAsync(int idWell,
[FromForm] IFormFileCollection files,
bool deleteBeforeImport,
@@ -93,10 +94,10 @@ namespace AsbCloudWebApi.Controllers
token).ConfigureAwait(false))
return Forbid();
if (files.Count < 1)
- return BadRequest("нет файла");
+ return this.ValidationBadRequest(nameof(files), "нет файла");
var file = files[0];
if (Path.GetExtension(file.FileName).ToLower() != ".xlsx")
- return BadRequest("Требуется xlsx файл.");
+ return this.ValidationBadRequest(nameof(files), "Требуется xlsx файл.");
using Stream stream = file.OpenReadStream();
try
@@ -106,7 +107,7 @@ namespace AsbCloudWebApi.Controllers
}
catch (FileFormatException ex)
{
- return BadRequest(ex.Message);
+ return this.ValidationBadRequest(nameof(files), ex.Message);
}
}
diff --git a/AsbCloudWebApi/Controllers/ProcessMapController.cs b/AsbCloudWebApi/Controllers/ProcessMapController.cs
index 5cb5db64..9b749340 100644
--- a/AsbCloudWebApi/Controllers/ProcessMapController.cs
+++ b/AsbCloudWebApi/Controllers/ProcessMapController.cs
@@ -64,11 +64,12 @@ namespace AsbCloudWebApi.Controllers
[Obsolete("use GetByUidAsync(..) instead")]
[AllowAnonymous]
[ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public IActionResult GetByTelemetry(string uid, DateTime updateFrom, CancellationToken token)
{
var idWell = telemetryService.GetIdWellByTelemetryUid(uid);
if (idWell is null)
- return BadRequest($"Wrong uid {uid}");
+ return this.ValidationBadRequest(nameof(uid), $"Wrong uid {uid}");
return Ok(Enumerable.Empty());
}
@@ -82,11 +83,12 @@ namespace AsbCloudWebApi.Controllers
[HttpGet("/api/telemetry/{uid}/processMap")]
[AllowAnonymous]
[ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public async Task GetByUidAsync(string uid, DateTime updateFrom, CancellationToken token)
{
var idWell = telemetryService.GetIdWellByTelemetryUid(uid);
if (idWell is null)
- return BadRequest($"Wrong uid {uid}");
+ return this.ValidationBadRequest(nameof(uid), $"Wrong uid {uid}");
var dto = await service.GetAllAsync((int)idWell,
updateFrom, token);
@@ -191,6 +193,7 @@ namespace AsbCloudWebApi.Controllers
///
///
[HttpPost("import/{idWell}/{options}")]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public async Task ImportAsync(int idWell,
int options,
[Required] IFormFile file,
@@ -205,7 +208,7 @@ namespace AsbCloudWebApi.Controllers
return Forbid();
if (Path.GetExtension(file.FileName).ToLower() != ".xlsx")
- return BadRequest("Требуется xlsx файл.");
+ return this.ValidationBadRequest(nameof(file), "Требуется xlsx файл.");
using Stream stream = file.OpenReadStream();
@@ -219,7 +222,7 @@ namespace AsbCloudWebApi.Controllers
}
catch (FileFormatException ex)
{
- return BadRequest(ex.Message);
+ return this.ValidationBadRequest(nameof(file), ex.Message);
}
return Ok();
diff --git a/AsbCloudWebApi/Controllers/ProtobufController.cs b/AsbCloudWebApi/Controllers/ProtobufController.cs
index cc60fa14..1476db25 100644
--- a/AsbCloudWebApi/Controllers/ProtobufController.cs
+++ b/AsbCloudWebApi/Controllers/ProtobufController.cs
@@ -59,10 +59,11 @@ namespace AsbCloudWebApi.Controllers
///
[HttpGet("schema/{typeName}")]
[ProducesResponseType(typeof(IEnumerable), (int)System.Net.HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public IActionResult GetSchema(string typeName)
{
if (string.IsNullOrEmpty(typeName))
- return BadRequest("require typeName");
+ return this.ValidationBadRequest(nameof(typeName), "require typeName");
var type = RuntimeTypeModel.Default
.GetTypes()
diff --git a/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs b/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs
index 2f644988..58950cba 100644
--- a/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/DetectedOperationController.cs
@@ -125,6 +125,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
[Permission]
[ProducesResponseType(typeof(PhysicalFileResult), (int)System.Net.HttpStatusCode.OK, "application/octet-stream")]
[ProducesResponseType(StatusCodes.Status204NoContent)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public async Task ExportAsync(int? idWell, int? idCluster, CancellationToken token)
{
if (idCluster is null && idWell is null)
diff --git a/AsbCloudWebApi/Controllers/SAUB/MessageController.cs b/AsbCloudWebApi/Controllers/SAUB/MessageController.cs
index cdac923d..81e710b3 100644
--- a/AsbCloudWebApi/Controllers/SAUB/MessageController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/MessageController.cs
@@ -33,6 +33,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
[HttpGet]
[Permission]
[ProducesResponseType(typeof(PaginationContainer), (int)System.Net.HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public async Task GetMessagesAsync(
[FromRoute] int idWell,
[FromQuery] MessageRequestBase request,
@@ -43,7 +44,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
return Forbid();
if (request.Take > 1024)
- return BadRequest("limit mast be less then 1024");
+ return this.ValidationBadRequest(nameof(request.Take), "limit mast be less then 1024");
var requestToService = new MessageRequest(request, idWell);
diff --git a/AsbCloudWebApi/Controllers/SAUB/SetpointsController.cs b/AsbCloudWebApi/Controllers/SAUB/SetpointsController.cs
index a9ec26a5..996c8298 100644
--- a/AsbCloudWebApi/Controllers/SAUB/SetpointsController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/SetpointsController.cs
@@ -51,6 +51,7 @@ namespace AsbCloudWebApi.Controllers.SAUB
[HttpPost("api/well/{idWell}/setpoints")]
[Permission]
[ProducesResponseType(typeof(int), (int)System.Net.HttpStatusCode.OK)]
+ [ProducesResponseType(typeof(ValidationProblemDetails), (int)System.Net.HttpStatusCode.BadRequest)]
public async Task InsertAsync(int idWell, SetpointsRequestDto setpoints, CancellationToken token)
{
int? idCompany = User.GetCompanyId();
@@ -70,10 +71,10 @@ namespace AsbCloudWebApi.Controllers.SAUB
if (setpoints is null
|| setpoints.ObsolescenceSec > ObsolescenceSecMax
|| setpoints.ObsolescenceSec < ObsolescenceSecMin)
- return BadRequest("Wrong ObsolescenceSec");
+ return this.ValidationBadRequest(nameof(setpoints.ObsolescenceSec), "Wrong ObsolescenceSec");
if (!setpoints.Setpoints.Any())
- return BadRequest("Wrong setpoints count");
+ return this.ValidationBadRequest(nameof(setpoints.Setpoints), "Wrong setpoints count");
var result = await setpointsService.InsertAsync(setpoints, token)
.ConfigureAwait(false);
diff --git a/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs b/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs
index b936edd5..ba11dd9d 100644
--- a/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs
+++ b/AsbCloudWebApi/Controllers/SAUB/TelemetryWirelineRunOutController.cs
@@ -8,6 +8,7 @@ using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading;
using AsbCloudApp.Repositories;
+using System.ComponentModel.DataAnnotations;
namespace AsbCloudWebApi.Controllers.SAUB
{
@@ -47,11 +48,8 @@ namespace AsbCloudWebApi.Controllers.SAUB
///
[HttpPost("{uid}")]
[AllowAnonymous]
- public async Task PostDataAsync(string uid, [FromBody] TelemetryWirelineRunOutBaseDto dto, CancellationToken token)
+ public async Task PostDataAsync(string uid, [FromBody, Required] TelemetryWirelineRunOutBaseDto dto, CancellationToken token)
{
- if (dto is null)
- return BadRequest("Dto shouldn't be null");
-
var data = await repository.AddOrUpdateAsync(uid, dto, token);
var idWell = telemetryService.GetIdWellByTelemetryUid(uid);
diff --git a/AsbCloudWebApi/Controllers/WellOperationController.cs b/AsbCloudWebApi/Controllers/WellOperationController.cs
index f07ac92c..189b9747 100644
--- a/AsbCloudWebApi/Controllers/WellOperationController.cs
+++ b/AsbCloudWebApi/Controllers/WellOperationController.cs
@@ -328,11 +328,11 @@ namespace AsbCloudWebApi.Controllers
return Forbid();
if (files.Count < 1)
- return BadRequest("Нет файла");
+ return this.ValidationBadRequest(nameof(files), "Нет файла");
var file = files[0];
if (Path.GetExtension(file.FileName).ToLower() != ".xlsx")
- return BadRequest("Требуется xlsx файл.");
+ return this.ValidationBadRequest(nameof(files), "Требуется xlsx файл.");
using Stream stream = file.OpenReadStream();
@@ -348,7 +348,7 @@ namespace AsbCloudWebApi.Controllers
}
catch (FileFormatException ex)
{
- return BadRequest(ex.Message);
+ return this.ValidationBadRequest(nameof(files), ex.Message);
}
return Ok();