public async Task <IActionResult> AddComplaint([FromRoute] string feedId, [FromBody] AddComplaintDTO model) { var result = await _complaintsServices.AddComplaint(feedId, model); if (result.Success) { return(Created("", result)); } return(BadRequest(result)); }
public static Complaint FromAddComplaintDTO(AddComplaintDTO complaint) { return(new Complaint { Type = complaint.Type, Image = complaint.Image, IsTask = complaint.IsTask, Question = complaint.Question, UserId = complaint.UserId }); }
public async Task FailWhenCategoryNotFound() { //Arrange MockUp(null); var complaintServices = new ComplaintServices(_serviceProvider); var feedId = ""; var complaint = new AddComplaintDTO(); //Act var actual = await complaintServices.AddComplaint(feedId, complaint); //Assert Assert.IsNull(actual.Data); }
public async Task ReturnValidResponse() { //Arrange MockUp(new Category()); var complaintServices = new ComplaintServices(_serviceProvider); var feedId = ""; var complaint = new AddComplaintDTO(); //Act var actual = await complaintServices.AddComplaint(feedId, complaint); //Assert Assert.IsNotNull(actual.Data); }
public async Task BadRequestResponse() { //Arrange MockUp(false); var feedController = new FeedController(_serviceProvider); var complaintDTO = new AddComplaintDTO(); var expected = 400; //ACT var actual = await feedController.AddComplaint("", complaintDTO) as BadRequestObjectResult; //Assert Assert.IsNotNull(actual); Assert.AreEqual(expected, actual.StatusCode); }
/// <summary> /// Adds a complaint to an existing feed /// </summary> /// <param name="feedId"></param> /// <param name="complaint"></param> /// <returns></returns> public async Task <Response <ComplaintResponseDTO> > AddComplaint(string feedId, AddComplaintDTO complaint) { var response = new Response <ComplaintResponseDTO>(); var feed = await _feedRepo.GetById(feedId); //ends the process if the feed cannot be found if (feed == null) { response.Message = "Feed not found"; response.Success = false; return(response); } //map values of the DTO to the actual object var newComplaint = ComplaintMapper.FromAddComplaintDTO(complaint); //updates the feedId in the categoryId property newComplaint.CategoryId = feedId; var result = await _complaintsRepo.Add(newComplaint); response.Success = result; response.Message = !response.Success ? "Error occured while updating your entry" : "Updated successfully"; response.Data = ComplaintMapper.ToComplaintResponseDTO(newComplaint); //returns the complaint added and the related field return(response); }