diff options
| author | transtrike <transtrike@gmail.com> | 2020-12-30 21:21:49 +0200 |
|---|---|---|
| committer | transtrike <transtrike@gmail.com> | 2020-12-30 21:21:49 +0200 |
| commit | 278130d86378a6b2db6ba443631f303fb7d7e207 (patch) | |
| tree | 72fa0ad4889a9f18cdd0a54992dc151784323c83 /src/DevHive.Web | |
| parent | a96478dd52250c4f5b494c66806d5e97156c48b3 (diff) | |
| download | DevHive-278130d86378a6b2db6ba443631f303fb7d7e207.tar DevHive-278130d86378a6b2db6ba443631f303fb7d7e207.tar.gz DevHive-278130d86378a6b2db6ba443631f303fb7d7e207.zip | |
Implemented Posts and merged Comment to Post
Diffstat (limited to 'src/DevHive.Web')
| -rw-r--r-- | src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs | 4 | ||||
| -rw-r--r-- | src/DevHive.Web/Configurations/Mapping/CommentMappings.cs | 7 | ||||
| -rw-r--r-- | src/DevHive.Web/Controllers/CommentController.cs | 72 | ||||
| -rw-r--r-- | src/DevHive.Web/Controllers/PostController.cs | 132 | ||||
| -rw-r--r-- | src/DevHive.Web/Controllers/RoleController.cs | 2 | ||||
| -rw-r--r-- | src/DevHive.Web/Controllers/UserController.cs | 2 | ||||
| -rw-r--r-- | src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs | 9 | ||||
| -rw-r--r-- | src/DevHive.Web/Models/Post/Comment/CommentWebModel.cs (renamed from src/DevHive.Web/Models/Comment/CommentWebModel.cs) | 4 | ||||
| -rw-r--r-- | src/DevHive.Web/Models/Post/Post/BasePostWebModel.cs | 10 | ||||
| -rw-r--r-- | src/DevHive.Web/Models/Post/Post/CreatePostWebModel.cs | 8 | ||||
| -rw-r--r-- | src/DevHive.Web/Models/Post/Post/PostWebModel.cs | 21 | ||||
| -rw-r--r-- | src/DevHive.Web/Models/Post/Post/UpdatePostModel.cs | 7 | ||||
| -rw-r--r-- | src/DevHive.Web/Startup.cs | 4 |
13 files changed, 187 insertions, 95 deletions
diff --git a/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs b/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs index 76d7c6f..2707d91 100644 --- a/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs +++ b/src/DevHive.Web/Configurations/Extensions/ConfigureDependencyInjection.cs @@ -12,13 +12,13 @@ namespace DevHive.Web.Configurations.Extensions services.AddTransient<RoleService>(); services.AddTransient<TechnologyService>(); services.AddTransient<UserService>(); - services.AddTransient<CommentService>(); + services.AddTransient<PostService>(); services.AddTransient<LanguageRepository>(); services.AddTransient<RoleRepository>(); services.AddTransient<TechnologyRepository>(); services.AddTransient<UserRepository>(); - services.AddTransient<CommentRepository>(); + services.AddTransient<PostRepository>(); } } }
\ No newline at end of file diff --git a/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs b/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs index dd11420..394490e 100644 --- a/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs +++ b/src/DevHive.Web/Configurations/Mapping/CommentMappings.cs @@ -1,10 +1,10 @@ using AutoMapper; -using DevHive.Web.Models.Comment; -using DevHive.Services.Models.Comment; +using DevHive.Services.Models.Post.Comment; +using DevHive.Web.Models.Post.Comment; namespace DevHive.Web.Configurations.Mapping { - public class CommentMappings : Profile + public class CommentMappings : Profile { public CommentMappings() { @@ -12,7 +12,6 @@ namespace DevHive.Web.Configurations.Mapping 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 deleted file mode 100644 index 5b6b0ee..0000000 --- a/src/DevHive.Web/Controllers/CommentController.cs +++ /dev/null @@ -1,72 +0,0 @@ -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/Controllers/PostController.cs b/src/DevHive.Web/Controllers/PostController.cs new file mode 100644 index 0000000..397ddbc --- /dev/null +++ b/src/DevHive.Web/Controllers/PostController.cs @@ -0,0 +1,132 @@ +using System.Threading.Tasks; +using DevHive.Services.Services; +using Microsoft.AspNetCore.Mvc; +using AutoMapper; +using System; +using DevHive.Web.Models.Post.Post; +using DevHive.Services.Models.Post.Post; +using DevHive.Web.Models.Post.Comment; +using DevHive.Services.Models.Post.Comment; +using DevHive.Common.Models.Misc; + +namespace DevHive.Web.Controllers +{ + [ApiController] + [Route("/api/[controller]")] + //[Authorize(Posts = "Admin")] + public class PostController + { + private readonly PostService _postService; + private readonly IMapper _postMapper; + + public PostController(PostService postService, IMapper mapper) + { + this._postService = postService; + this._postMapper = mapper; + } + + //Create + [HttpPost] + public async Task<IActionResult> Create([FromBody] CreatePostWebModel createPostModel) + { + CreatePostServiceModel postServiceModel = + this._postMapper.Map<CreatePostServiceModel>(createPostModel); + + bool result = await this._postService.CreatePost(postServiceModel); + + if (!result) + return new BadRequestObjectResult("Could not create post!"); + + return new OkResult(); + } + + [HttpPost] + [Route("Comment")] + public async Task<IActionResult> AddComment([FromBody] CommentWebModel commentWebModel) + { + CommentServiceModel commentServiceModel = this._postMapper.Map<CommentServiceModel>(commentWebModel); + + bool result = await this._postService.AddComment(commentServiceModel); + + if(!result) + return new BadRequestObjectResult("Could not create the Comment"); + + return new OkResult(); + } + + //Read + [HttpGet] + public async Task<IActionResult> GetById(Guid id) + { + PostServiceModel postServiceModel = await this._postService.GetPostById(id); + PostWebModel postWebModel = this._postMapper.Map<PostWebModel>(postServiceModel); + + return new OkObjectResult(postWebModel); + } + + [HttpGet] + [Route("Comment")] + public async Task<IActionResult> GetCommentById(Guid id) + { + CommentServiceModel commentServiceModel = await this._postService.GetCommentById(id); + IdModel idModel = this._postMapper.Map<IdModel>(commentServiceModel); + + return new OkObjectResult(idModel); + } + + //Update + [HttpPut] + public async Task<IActionResult> Update(Guid id, [FromBody] UpdatePostWebModel updatePostModel) + { + UpdatePostServiceModel postServiceModel = + this._postMapper.Map<UpdatePostServiceModel>(updatePostModel); + postServiceModel.IssuerId = id; + + bool result = await this._postService.UpdatePost(postServiceModel); + + if (!result) + return new BadRequestObjectResult("Could not update post!"); + + return new OkResult(); + } + + [HttpPut] + [Route("Comment")] + public async Task<IActionResult> UpdateComment(Guid id, [FromBody] CommentWebModel commentWebModel) + { + UpdateCommentServiceModel updateCommentServiceModel = this._postMapper.Map<UpdateCommentServiceModel>(commentWebModel); + updateCommentServiceModel.Id = id; + + bool result = await this._postService.UpdateComment(updateCommentServiceModel); + + if (!result) + return new BadRequestObjectResult("Could not update Comment"); + + return new OkResult(); + } + + //Delete + [HttpDelete] + public async Task<IActionResult> Delete(Guid id) + { + bool result = await this._postService.DeletePost(id); + + if (!result) + return new BadRequestObjectResult("Could not delete post!"); + + return new OkResult(); + } + + [HttpDelete] + [Route("Comment")] + public async Task<IActionResult> DeleteComment(Guid id) + { + bool result = await this._postService.DeleteComment(id); + + if (!result) + return new BadRequestObjectResult("Could not delete Comment"); + + return new OkResult(); + } + } +} diff --git a/src/DevHive.Web/Controllers/RoleController.cs b/src/DevHive.Web/Controllers/RoleController.cs index 6b81ab8..d710f5a 100644 --- a/src/DevHive.Web/Controllers/RoleController.cs +++ b/src/DevHive.Web/Controllers/RoleController.cs @@ -67,7 +67,7 @@ namespace DevHive.Web.Controllers bool result = await this._roleService.DeleteRole(id); if (!result) - return new BadRequestObjectResult("Could nor delete role!"); + return new BadRequestObjectResult("Could not delete role!"); return new OkResult(); } diff --git a/src/DevHive.Web/Controllers/UserController.cs b/src/DevHive.Web/Controllers/UserController.cs index 02cae0c..ce972a5 100644 --- a/src/DevHive.Web/Controllers/UserController.cs +++ b/src/DevHive.Web/Controllers/UserController.cs @@ -9,7 +9,7 @@ using DevHive.Web.Models.Identity.User; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using DevHive.Common.Models.Identity; -using DevHive.Common.Models.Data; +using DevHive.Common.Models.Misc; namespace DevHive.Web.Controllers { diff --git a/src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs b/src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs deleted file mode 100644 index 3d03348..0000000 --- a/src/DevHive.Web/Models/Comment/GetByIdCommentWebModel.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace DevHive.Web.Models.Comment -{ - public class GetByIdCommentWebModel : CommentWebModel - { - public DateTime Date { get; set; } - } -}
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Comment/CommentWebModel.cs b/src/DevHive.Web/Models/Post/Comment/CommentWebModel.cs index 37806a5..2a8650a 100644 --- a/src/DevHive.Web/Models/Comment/CommentWebModel.cs +++ b/src/DevHive.Web/Models/Post/Comment/CommentWebModel.cs @@ -1,10 +1,10 @@ using System; -namespace DevHive.Web.Models.Comment +namespace DevHive.Web.Models.Post.Comment { public class CommentWebModel { - public Guid UserId { get; set; } + public Guid IssuerId { get; set; } public string Message { get; set; } } }
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Post/Post/BasePostWebModel.cs b/src/DevHive.Web/Models/Post/Post/BasePostWebModel.cs new file mode 100644 index 0000000..caa9925 --- /dev/null +++ b/src/DevHive.Web/Models/Post/Post/BasePostWebModel.cs @@ -0,0 +1,10 @@ +using System; + +namespace DevHive.Web.Models.Post.Post +{ + public class BasePostWebModel + { + public Guid IssuerId { get; set; } + public string Message { get; set; } + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Post/Post/CreatePostWebModel.cs b/src/DevHive.Web/Models/Post/Post/CreatePostWebModel.cs new file mode 100644 index 0000000..7558b2c --- /dev/null +++ b/src/DevHive.Web/Models/Post/Post/CreatePostWebModel.cs @@ -0,0 +1,8 @@ +using System; + +namespace DevHive.Web.Models.Post.Post +{ + public class CreatePostWebModel : BasePostWebModel + { + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Post/Post/PostWebModel.cs b/src/DevHive.Web/Models/Post/Post/PostWebModel.cs new file mode 100644 index 0000000..fa18c3a --- /dev/null +++ b/src/DevHive.Web/Models/Post/Post/PostWebModel.cs @@ -0,0 +1,21 @@ +using DevHive.Web.Models.Post.Comment; + +namespace DevHive.Web.Models.Post.Post +{ + public class PostWebModel + { + //public string Picture { get; set; } + + public string IssuerFirstName { get; set; } + + public string IssuerLastName { get; set; } + + public string IssuerUsername { get; set; } + + public string Message { get; set; } + + //public Files[] Files { get; set; } + + public CommentWebModel[] Comments { get; set; } + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Models/Post/Post/UpdatePostModel.cs b/src/DevHive.Web/Models/Post/Post/UpdatePostModel.cs new file mode 100644 index 0000000..c774900 --- /dev/null +++ b/src/DevHive.Web/Models/Post/Post/UpdatePostModel.cs @@ -0,0 +1,7 @@ +namespace DevHive.Web.Models.Post.Post +{ + public class UpdatePostWebModel : BasePostWebModel + { + //public Files[] Files { get; set; } + } +}
\ No newline at end of file diff --git a/src/DevHive.Web/Startup.cs b/src/DevHive.Web/Startup.cs index de1295c..42fc88a 100644 --- a/src/DevHive.Web/Startup.cs +++ b/src/DevHive.Web/Startup.cs @@ -1,14 +1,10 @@ -using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using DevHive.Web.Configurations.Extensions;
-using AutoMapper;
using Newtonsoft.Json;
-using DevHive.Data.Repositories;
-using DevHive.Services.Services;
namespace DevHive.Web
{
|
