From a65f66d90df00772f92a157e6d1367e3be7ee79d Mon Sep 17 00:00:00 2001 From: Matheus-0217 Date: Fri, 10 Jan 2025 05:54:00 -0300 Subject: [PATCH] Bug Idoso MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correção do bug DB --- src/app/private/pages/cadastrarIdoso.tsx | 69 +++++++++++++++++++----- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/src/app/private/pages/cadastrarIdoso.tsx b/src/app/private/pages/cadastrarIdoso.tsx index 1a88309..f6d8ae6 100644 --- a/src/app/private/pages/cadastrarIdoso.tsx +++ b/src/app/private/pages/cadastrarIdoso.tsx @@ -27,11 +27,11 @@ import Metrica from "../../model/Metrica"; import { getTipoSanguineoOptions } from "../../shared/helpers/useNotification"; import styles from "../../components/style/styles"; interface IErrors { - nome?: string; - dataNascimento?: string; - tipoSanguineo?: string; - telefoneResponsavel?: string; - descricao?: string; + nome?: string; + dataNascimento?: string; + tipoSanguineo?: string; + telefoneResponsavel?: string; + descricao?: string; } export default function CadastrarIdoso() { @@ -41,15 +41,17 @@ export default function CadastrarIdoso() { const [telefoneResponsavel, setTelefoneResponsavel] = useState(""); const [dataNascimento, setDataNascimento] = useState(""); const [descricao, setDescricao] = useState(""); - const [token, setToken] = useState(""); const [erros, setErros] = useState({}); const [showErrors, setShowErrors] = useState(false); const [showLoading, setShowLoading] = useState(false); const [idUsuario, setIdUsuario] = useState(null); const [maskedTelefoneResponsavel, setMaskedTelefoneResponsavel] = useState(""); - const router = useRouter(); + const API_URL = process.env.EXPO_PUBLIC_API_URL; + const API_PORT = process.env.EXPO_PUBLIC_API_USUARIO_PORT; + const BASE_URL = `${API_URL}:${API_PORT}/api/saude/idoso`; + useEffect(() => { const getIdUsuario = async () => { try { @@ -57,7 +59,7 @@ export default function CadastrarIdoso() { if (response) { const usuario = JSON.parse(response) as IUser; setIdUsuario(usuario.id); - console.log("Usuário logado:", usuario); + // console.log("Usuário logado:", usuario); } else { console.log("Usuário não encontrado no AsyncStorage."); } @@ -66,14 +68,11 @@ export default function CadastrarIdoso() { } }; - getIdUsuario(); }, []); - useEffect(() => handleErrors(), [nome, telefoneResponsavel, dataNascimento]); - const getDateIsoString = (value: string) => { const dateArray = value.split("/"); return `${dateArray[2]}-${dateArray[1]}-${dateArray[0]}T12:00:00.000Z`; @@ -177,10 +176,52 @@ export default function CadastrarIdoso() { } try { + const token = await AsyncStorage.getItem('token') + + if (!token) { + console.error('Token não encontrado.'); + return; + } + setShowLoading(true); - await salvarNoBancoLocal(); - ToastAndroid.show("Idoso salvo no banco local com sucesso!", ToastAndroid.SHORT); - router.replace("/private/pages/listarIdosos"); + // await salvarNoBancoLocal(); + + if (idUsuario === null) { + return + } + + const body = { + nome: nome, + dataNascimento: getDateIsoString(dataNascimento), + telefoneResponsavel: telefoneResponsavel, + descricao: descricao, + tipoSanguineo: tipoSanguineo, + idUsuario: idUsuario, + foto: foto || '' + }; + + const response = await fetch(BASE_URL, + { + method: "POST", + headers: { + Accept: "application/json", + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify(body) + } + ) + + const data = await response.json() + + console.log('response', data) + + if (data.message == "Salvo com sucesso!") { + ToastAndroid.show("Idoso salvo com sucesso!", ToastAndroid.SHORT); + router.replace("/private/pages/listarIdosos"); + } else { + throw new Error("Erro ao salvar idoso") + } } catch (err) { const error = err as { message: string }; ToastAndroid.show(`Erro: ${error.message}`, ToastAndroid.SHORT);