| | | 1 | | using Microsoft.AspNetCore.Http.HttpResults; |
| | | 2 | | using pva.SuperV.Engine.Exceptions; |
| | | 3 | | using pva.SuperV.Model.Classes; |
| | | 4 | | using pva.SuperV.Model.Services; |
| | | 5 | | |
| | | 6 | | namespace pva.SuperV.Api.Routes.Classes |
| | | 7 | | { |
| | | 8 | | internal static class CreateClass |
| | | 9 | | { |
| | | 10 | | internal static async Task<Results<Created<ClassModel>, NotFound<string>, BadRequest<string>>> |
| | | 11 | | Handle(IClassService classService, string projectId, ClassModel createRequest) |
| | 6 | 12 | | { |
| | | 13 | | try |
| | 6 | 14 | | { |
| | 6 | 15 | | ClassModel createdClass = await classService.CreateClassAsync(projectId, createRequest); |
| | 4 | 16 | | return TypedResults.Created($"/classes/{projectId}/{createdClass.Name}", createdClass); |
| | | 17 | | } |
| | 1 | 18 | | catch (UnknownEntityException e) |
| | 1 | 19 | | { |
| | 1 | 20 | | return TypedResults.NotFound(e.Message); |
| | | 21 | | } |
| | 1 | 22 | | catch (SuperVException e) |
| | 1 | 23 | | { |
| | 1 | 24 | | return TypedResults.BadRequest(e.Message); |
| | | 25 | | } |
| | 6 | 26 | | } |
| | | 27 | | } |
| | | 28 | | } |