aboutsummaryrefslogtreecommitdiffstats
path: root/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
diff options
context:
space:
mode:
Diffstat (limited to 'code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs')
-rw-r--r--code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs14
1 files changed, 9 insertions, 5 deletions
diff --git a/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs b/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
index 5c78e27..04a3a9a 100644
--- a/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
+++ b/code/api/src/Endpoints/V1/Projects/CreateProjectRoute.cs
@@ -14,10 +14,10 @@ public class CreateProjectRoute : RouteBaseAsync.WithRequest<CreateProjectPayloa
[HttpPost("~/v{version:apiVersion}/projects/create")]
public override async Task<ActionResult> HandleAsync(CreateProjectPayload request, CancellationToken cancellationToken = default) {
- var errors = new Dictionary<string, string>();
+ var problem = new KnownProblemModel();
if (request.Name.IsNullOrEmpty()) {
- errors.Add("name", _localizer["Name is a required field"]);
+ problem.AddError("name", _localizer["Name is a required field"]);
}
var project = new Project(LoggedInUser) {
@@ -31,7 +31,7 @@ public class CreateProjectRoute : RouteBaseAsync.WithRequest<CreateProjectPayloa
foreach (var customerId in request.CustomerIds) {
var customer = _database.Customers.FirstOrDefault(c => c.Id == customerId);
if (customer == default) {
- errors.Add("customer_" + customerId, _localizer["Customer not found"]);
+ problem.AddError("customer_" + customerId, _localizer["Customer not found"]);
continue;
}
@@ -41,7 +41,7 @@ public class CreateProjectRoute : RouteBaseAsync.WithRequest<CreateProjectPayloa
foreach (var member in request.Members) {
var user = _database.Users.FirstOrDefault(c => c.Id == member.UserId);
if (user == default) {
- errors.Add("members_" + member.UserId, _localizer["User not found"]);
+ problem.AddError("members_" + member.UserId, _localizer["User not found"]);
continue;
}
@@ -52,7 +52,11 @@ public class CreateProjectRoute : RouteBaseAsync.WithRequest<CreateProjectPayloa
});
}
- if (errors.Any()) return KnownProblem(_localizer["Invalid form"], _localizer["One or more fields is invalid"], errors);
+ if (problem.Errors.Any()) {
+ problem.Title = _localizer["Invalid form"];
+ problem.Subtitle = _localizer["One or more validation errors occured"];
+ return KnownProblem(problem);
+ }
_database.Projects.Add(project);
await _database.SaveChangesAsync(cancellationToken);