Files
FACULTATE-HEALTHCARE_MANAGER/backend/Application/Endpoints/Doctors/Registration/DoctorRegistrationHandler.cs
T
ElenitaMLG 55eaa0d53a Backend Pacients, Doctors and MedicalHistory endpoints
- added for Pacients:
POST: /register
POST: /login
POST: /reset_password
PUT: /profile
DELETE: /profile

- added for Doctors:
POST: /register
POST: /login
POST: /reset_password
PUT: /profile
DELETE: /profile

- added for MedicalHistories:
POST: /:id (only by pacient) - done
GET: /:id (only by pacient) - done
PUT: /:id (only by doctor) - done
PUT /grand_access - TODO
2024-04-07 00:23:13 +03:00

50 lines
1.5 KiB
C#

using Application.Endpoints.Doctors.Login;
using Application.Services.Database;
using Core.Entities;
namespace Application.Endpoints.Doctors.Registration;
public class DoctorRegistrationHandler
{
private readonly IDoctorRepository _doctorRepository;
public DoctorRegistrationHandler(IDoctorRepository doctorRepository)
{
_doctorRepository = doctorRepository;
}
public async Task<BaseResponse> Handle(DoctorRegistrationDto registrationDTO)
{
var validation = new DoctorRegistrationValidation(_doctorRepository);
var validationResult = await validation.ValidateAsync(registrationDTO);
if (!validationResult.IsValid)
{
var errorMessage = validationResult.Errors.Select(e => e.ErrorMessage).ToList();
return new BaseResponse
{
Success = false,
Message = string.Join(", ", errorMessage),
Data = null
};
}
var doctor = new Doctor
{
Email = registrationDTO.Email,
Password = registrationDTO.Password,
Name = registrationDTO.Name,
Description = registrationDTO.Description
};
await _doctorRepository.AddAsync(doctor);
return new BaseResponse
{
Success = true,
Message = "Doctor registered successfully",
Data = doctor // Be careful with sending sensitive data like Passwords
};
}
}