public IActionResult Patch(int id, FuncionarioModel editedModel) { try { Funcionario currentModel = _funcionarioBusiness.Get(id); if (currentModel == null) { return(NotFound()); } if (!editedModel.ValidPassword()) { return(BadRequest("A senha informada não é válida.\nDeve conter 6 ou mais caracteres.")); } if (editedModel.SenhasIguais(currentModel.Senha)) { return(BadRequest("A senha informada não é válida.\nTente outra senha.")); } _funcionarioBusiness.TrocarSenha(currentModel, editedModel.Senha); return(Ok(FuncionarioModel.ToModel(currentModel).ToBody())); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public IActionResult Get(int id) { try { FuncionarioModel currentModel = FuncionarioModel.ToModel(_funcionarioBusiness.Get(id)); if (currentModel == null) { return(NotFound()); } return(Ok(currentModel.ToBody())); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public IActionResult Post([FromBody] LoginModel loginModel) { try { FuncionarioModel currentModel = FuncionarioModel.ToModel(_funcionarioBusiness.Get(loginModel.Login, loginModel.Senha)); if (currentModel == null) { return(NotFound("Login ou senha incorreto")); } return(Ok(currentModel.ToBody())); } catch (Exception ex) { return(StatusCode(500, ex.Message)); } }
public IActionResult Delete(int id) { try { FuncionarioModel currentModel = FuncionarioModel.ToModel(_funcionarioBusiness.Get(id)); if (currentModel == null) { return(NotFound()); } if (!_funcionarioBusiness.JaRealizouAluguel(currentModel.ToDomain())) { _funcionarioBusiness.Desactive(currentModel.ToDomain()); return(Ok(currentModel.ToBody())); } return(BadRequest("Não foi possível desativar este funcionário, pois ele já efetuou um ou mais aluguéis.")); } catch (Exception ex) { throw ex; } }