diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2020-12-30 17:48:30 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2020-12-30 17:48:30 +0200 |
| commit | fb56c49681746c8c47c1da43c918b37df5f214a1 (patch) | |
| tree | 780a7ae16198a0649988cd4a677e984477ffb150 /src/DevHive.Web | |
| parent | e2958817c79f29722fedc1ea8ddcedea894a0f20 (diff) | |
| download | DevHive-fb56c49681746c8c47c1da43c918b37df5f214a1.tar DevHive-fb56c49681746c8c47c1da43c918b37df5f214a1.tar.gz DevHive-fb56c49681746c8c47c1da43c918b37df5f214a1.zip | |
Adding coomment layers
Diffstat (limited to 'src/DevHive.Web')
4 files changed, 109 insertions, 0 deletions
diff --git a/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs b/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs new file mode 100644 index 0000000..dd11420 --- /dev/null +++ b/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs @@ -0,0 +1,18 @@ +using AutoMapper; +using DevHive.Web.Models.Comment; +using DevHive.Services.Models.Comment; + +namespace DevHive.Web.Configurations.Mapping +{ + public class CommentMappings : Profile + { + public CommentMappings() + { + CreateMap<CommentWebModel, CommentServiceModel>(); + CreateMap<CommentWebModel, UpdateCommentServiceModel>(); + CreateMap<CommentServiceModel, CommentWebModel>(); + CreateMap<CommentWebModel, CommentServiceModel>(); + CreateMap<GetByIdCommentServiceModel, GetByIdCommentWebModel>(); + } + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Controllers/CommentController.cs b/src/DevHive.Web/Controllers/CommentController.cs new file mode 100644 index 0000000..5b6b0ee --- /dev/null +++ b/src/DevHive.Web/Controllers/CommentController.cs @@ -0,0 +1,72 @@ +using System; +using System.Threading.Tasks; +using AutoMapper; +using DevHive.Data.Repositories; +using DevHive.Services.Models.Comment; +using DevHive.Services.Services; +using DevHive.Web.Models.Comment; +using Microsoft.AspNetCore.Mvc; + +namespace DevHive.Web.Controllers +{ + [ApiController] + [Route("/api/[controller]")] + public class CommentController + { + private readonly CommentService _commentService; + private readonly IMapper _commentMapper; + + public CommentController(CommentService commentService, IMapper mapper) + { + this._commentService = commentService; + this._commentMapper = mapper; + } + + [HttpPost] + public async Task<IActionResult> Create([FromBody] CommentWebModel commentWebModel) + { + CommentServiceModel commentServiceModel = this._commentMapper.Map<CommentServiceModel>(commentWebModel); + + bool result = await this._commentService.CreateComment(commentServiceModel); + + if(!result) + return new BadRequestObjectResult("Could not create the Comment"); + + return new OkResult(); + } + + [HttpGet] + public async Task<IActionResult> GetById(Guid id) + { + GetByIdCommentServiceModel getByIdCommentServiceModel = await this._commentService.GetCommentById(id); + GetByIdCommentWebModel getByIdCommentWebModel = this._commentMapper.Map<GetByIdCommentWebModel>(getByIdCommentServiceModel); + + return new OkObjectResult(getByIdCommentWebModel); + } + + [HttpPut] + public async Task<IActionResult> Update(Guid id, [FromBody] CommentWebModel commentWebModel) + { + UpdateCommentServiceModel updateCommentServiceModel = this._commentMapper.Map<UpdateCommentServiceModel>(commentWebModel); + updateCommentServiceModel.Id = id; + + bool result = await this._commentService.UpdateComment(updateCommentServiceModel); + + if (!result) + return new BadRequestObjectResult("Could not update Comment"); + + return new OkResult(); + } + + [HttpDelete] + public async Task<IActionResult> Delete(Guid id) + { + bool result = await this._commentService.DeleteComment(id); + + if (!result) + return new BadRequestObjectResult("Could not delete Comment"); + + return new OkResult(); + } + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Comment/CommentWebModel.cs b/src/DevHive.Web/Models/Comment/CommentWebModel.cs new file mode 100644 index 0000000..37806a5 --- /dev/null +++ b/src/DevHive.Web/Models/Comment/CommentWebModel.cs @@ -0,0 +1,10 @@ +using System; + +namespace DevHive.Web.Models.Comment +{ + public class CommentWebModel + { + public Guid UserId { get; set; } + public string Message { get; set; } + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs b/src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs new file mode 100644 index 0000000..3d03348 --- /dev/null +++ b/src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs @@ -0,0 +1,9 @@ +using System; + +namespace DevHive.Web.Models.Comment +{ + public class GetByIdCommentWebModel : CommentWebModel + { + public DateTime Date { get; set; } + } +}
\ No newline at end of file |
