public async Task <IActionResult> CreateReport([FromBody] DtoCreateMedicalReportInput report) { var reportCreatorId = Guid.Parse(User.Claims.First(x => x.Type == "UserId").Value); var responseService = await _createMedicalReportService.Execute(reportCreatorId, report); if (responseService.Success) { return(Created("api/[controller]/{id}", responseService.Value)); } return(BadRequest(responseService.Message)); }
public async Task CreateMedicalReportService_ShouldReturnError_WhenReportIsInvalid() { var creatorId = Guid.NewGuid(); var mcId = Guid.NewGuid(); var report = "mockReport"; var dto = new DtoCreateMedicalReportInput { MedicalConsultationId = mcId, Report = report }; MedicalConsultation invalidMc = null; _mcRepository.Setup(x => x.GetById(mcId)).ReturnsAsync(invalidMc); var response = await _service.Execute(creatorId, dto); Assert.Equal(HttpStatusCode.BadRequest, response.Status); }
public async Task CreateMedicalReportService_ShouldReturnSuccess_WhenReportIsValid() { var creatorId = Guid.NewGuid(); var mcId = Guid.NewGuid(); var report = "mockReport"; var dto = new DtoCreateMedicalReportInput { MedicalConsultationId = mcId, Report = report }; var mc = new MedicalConsultation { Id = mcId }; _mcRepository.Setup(x => x.GetById(mcId)).ReturnsAsync(mc); var response = await _service.Execute(creatorId, dto); Assert.Equal(HttpStatusCode.OK, response.Status); }
public async Task <ResponseService <MedicalConsultation> > Execute(Guid reportCreatorId, DtoCreateMedicalReportInput report) { var medicalConsultation = await _medicalConsultationRepository.GetById(report.MedicalConsultationId); if (medicalConsultation == null) { return(GenerateErroServiceResponse <MedicalConsultation>("A consulta para laudo não encontrada.")); } try { medicalConsultation.MakeReport(report.Report, reportCreatorId); await _medicalConsultationRepository.Update(medicalConsultation); return(GenerateSuccessServiceResponse(medicalConsultation)); } catch (Exception ex) { return(GenerateErroServiceResponse <MedicalConsultation>(ex.Message)); } }