Dashboard Page - Appointments:
- create separate dashboard components for doctor and patient - add appointments to dashboard components - add code to backend for appointments retrieval
This commit is contained in:
@@ -38,4 +38,20 @@ public class AppointmentsController : BaseApiController
|
||||
var response = await handler.HandleDeleteAppointment(dto).ConfigureAwait(false);
|
||||
return StatusCode(response.StatusCode, response);
|
||||
}
|
||||
|
||||
[HttpGet("patient/{id:guid}")]
|
||||
public async Task<ActionResult<BaseResponse>> GetAppointmentsByPatient(Guid id)
|
||||
{
|
||||
var handler = new AppointmentManagementHandler(_appointmentsMongoDbService, _patientRepository, _doctorRepository);
|
||||
var response = await handler.HandleGetAppointmentsByPatientId(id);
|
||||
return StatusCode(response.StatusCode, response);
|
||||
}
|
||||
|
||||
[HttpGet("doctor/{id:guid}")]
|
||||
public async Task<ActionResult<BaseResponse>> GetAppointmentsByDoctor(Guid id)
|
||||
{
|
||||
var handler = new AppointmentManagementHandler(_appointmentsMongoDbService, _patientRepository, _doctorRepository);
|
||||
var response = await handler.HandleGetAppointmentsByDoctorId(id);
|
||||
return StatusCode(response.StatusCode, response);
|
||||
}
|
||||
}
|
||||
@@ -116,4 +116,50 @@ public class AppointmentManagementHandler
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<BaseResponse> HandleGetAppointmentsByPatientId(Guid patientId)
|
||||
{
|
||||
var criteria = new List<(string FieldName, string Value)>
|
||||
{
|
||||
("PatientId", patientId.ToString())
|
||||
};
|
||||
var appointments = await _appointmentsMongoDbService.FindAsync<Appointment>(criteria);
|
||||
|
||||
if (appointments.Count == 0)
|
||||
return new BaseResponse
|
||||
{
|
||||
StatusCode = HttpStatusCodes.NotFound,
|
||||
Message = $"Appointments not found in system for patient with id {patientId}.",
|
||||
Data = null
|
||||
};
|
||||
return new BaseResponse
|
||||
{
|
||||
StatusCode = HttpStatusCodes.OK,
|
||||
Message = $"Appointments for patient with id {patientId} successfully retrieved.",
|
||||
Data = appointments
|
||||
};
|
||||
}
|
||||
|
||||
public async Task<BaseResponse> HandleGetAppointmentsByDoctorId(Guid doctorId)
|
||||
{
|
||||
var criteria = new List<(string FieldName, string Value)>
|
||||
{
|
||||
("DoctorId", doctorId.ToString())
|
||||
};
|
||||
var appointments = await _appointmentsMongoDbService.FindAsync<Appointment>(criteria);
|
||||
|
||||
if (appointments.Count == 0)
|
||||
return new BaseResponse
|
||||
{
|
||||
StatusCode = HttpStatusCodes.NotFound,
|
||||
Message = $"Appointments not found in system for doctor with id {doctorId}.",
|
||||
Data = null
|
||||
};
|
||||
return new BaseResponse
|
||||
{
|
||||
StatusCode = HttpStatusCodes.OK,
|
||||
Message = $"Appointments for doctor with id {doctorId} successfully retrieved.",
|
||||
Data = appointments
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ public class Appointment
|
||||
public string Id { get; private set; }
|
||||
public string PatientId { get; private set; }
|
||||
public string DoctorId { get; private set; }
|
||||
public List<DateTime> AppointmentsList { get; }
|
||||
public List<DateTime> AppointmentsList { get; set; }
|
||||
|
||||
public void SetId(string id)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user