public async Task <IActionResult> SignIn(string dni) { _logger.LogInformation("Petición de conexion del profesor con dni " + dni); try { TeacherSignInResponse result = await _teacherService.SignIn(dni); _logger.LogInformation("Profesor logeado con éxito"); return(Ok(result)); } catch (WrongDniException ex) { ApiError error = new ApiError() { Timestamp = DateTime.Now, StatusCode = StatusCodes.Status404NotFound, Error = ex.GetType().Name, Message = ex.Message }; _logger.LogWarning(error.ToString()); return(NotFound(ex.Message)); } }
/// <summary> /// Abre una sesión de profesor si el dni es reconocido /// por el repositorio /// </summary> /// <param name="dni"> /// dni del profesor /// </param> /// <returns> /// Retorna un objeto TeacherSignInResponse que contiene /// el id del profesor,su nombre, el token generado, /// el Role profesor y la lista de clases que imparte /// el profesor "hoy" /// </returns> public async Task <TeacherSignInResponse> SignIn(string dni) { TeacherEntity teacherEntity = await _teacherRepository .GetByDni(dni); //Token único de sessión string token = _authService.GenerateToken(teacherEntity.Dni, Role.TEACHER); //Lista de las clases del dia del profesor List <SchoolClass> schoolClasses = await _schoolClassService .GetByTeacher(teacherEntity.Id); TeacherSignInResponse signInResponse = new TeacherSignInResponse() { TeacherId = teacherEntity.Id, FirstName = teacherEntity.FirstName, Token = token, Role = Role.TEACHER, SchoolClasses = schoolClasses }; return(signInResponse); }