Skip to content

Commit

Permalink
Merge 25-refa/estacoes
Browse files Browse the repository at this point in the history
25 refa/estacoes
  • Loading branch information
b4hia authored Oct 21, 2024
2 parents 723a620 + e262084 commit 33d7d35
Show file tree
Hide file tree
Showing 28 changed files with 1,848 additions and 284 deletions.
22 changes: 22 additions & 0 deletions tupan/src/app/_api/delete/estacao.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { api_route } from '..';

export const deletarEstacao = async (id: number): Promise<void> => {
try {
const response = await fetch(`${api_route}/estacoes/${id}`, {
method: 'DELETE',
headers: {
'Authorization': `Token 2948c11eaf985f44737d8fa84db99846e8197fae`,
'Content-Type': 'application/json',
},
});

if (!response.ok) {
throw new Error(`Erro ao deletar a estação: ${response.statusText}`);
}

console.log('Estação deletada com sucesso');
} catch (error) {
console.error('Erro na requisição:', error);
throw error;
}
};
13 changes: 12 additions & 1 deletion tupan/src/app/_api/delete/parametro.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
import { api_route } from '..';

// Função para obter o token armazenado
const obterToken = (): string | null => {
return localStorage.getItem('token');
};

export const deletarParametro = async (id: number): Promise<void> => {
const token = obterToken(); // Obtendo o token armazenado

if (!token) {
throw new Error('Token não encontrado. Por favor, faça login.');
}

try {
const response = await fetch(`${api_route}/parametros/${id}`, {
method: 'DELETE',
headers: {
'Authorization': `Token 1112a98d58500b7a165191fc56b2a9c1513413e8`,
'Authorization': `Token ${token}`, // Usando o token dinamicamente
'Content-Type': 'application/json',
},
});
Expand Down
58 changes: 58 additions & 0 deletions tupan/src/app/_api/get/enderecos.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { api_route } from "..";

interface Endereco {
id: number;
logradouro: string;
bairro: string;
cidade: string;
estado: string;
numero: number;
complemento: string;
cep: string;
latitude: number;
longitude: number;
}

export const obterEnderecos = async (): Promise<Endereco[]> => {
try {
const response = await fetch(`${api_route}enderecos`, {
method: "GET",
headers: {
"Authorization": `Token 2948c11eaf985f44737d8fa84db99846e8197fae`,
"Content-Type": "application/json",
},
});

if (!response.ok) {
throw new Error(`Erro ao obter endereços: ${response.statusText}`);
}

const data = await response.json();
return data as Endereco[];
} catch (error) {
console.error("Erro na requisição:", error);
throw error;
}
};

export const obterEnderecoPorId = async (id: number): Promise<Endereco> => {
try {
const response = await fetch(`${api_route}enderecos/${id}`, {
method: "GET",
headers: {
"Authorization": `Token 2948c11eaf985f44737d8fa84db99846e8197fae`,
"Content-Type": "application/json",
},
});

if (!response.ok) {
throw new Error(`Erro ao obter endereço: ${response.statusText}`);
}

const data = await response.json();
return data as Endereco;
} catch (error) {
console.error("Erro na requisição:", error);
throw error;
}
}
72 changes: 72 additions & 0 deletions tupan/src/app/_api/get/estacoes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import { api_route } from "..";

interface Estacao {
id: number;
nome: string;
topico: string;
ativo: boolean;
criado: string;
modificado: string;
endereco_id: number;
}

// Função para obter o token armazenado no localStorage
const obterToken = (): string | null => {
return localStorage.getItem("token");
};

export const obterEstacoes = async (): Promise<Estacao[]> => {
const token = obterToken(); // Obtendo o token armazenado

if (!token) {
throw new Error("Token não encontrado. Por favor, faça login.");
}

try {
const response = await fetch(`${api_route}estacoes`, {
method: "GET",
headers: {
"Authorization": `Token ${token}`, // Usando o token dinamicamente
"Content-Type": "application/json",
},
});

if (!response.ok) {
throw new Error(`Erro ao obter estações: ${response.statusText}`);
}

const data = await response.json();
return data as Estacao[];
} catch (error) {
console.error("Erro na requisição:", error);
throw error;
}
};

export const obterEstacaoPorId = async (id: number): Promise<Estacao> => {
const token = obterToken(); // Obtendo o token armazenado

if (!token) {
throw new Error("Token não encontrado. Por favor, faça login.");
}

try {
const response = await fetch(`${api_route}estacoes/${id}`, {
method: "GET",
headers: {
"Authorization": `Token ${token}`, // Usando o token dinamicamente
"Content-Type": "application/json",
},
});

if (!response.ok) {
throw new Error(`Erro ao obter estação: ${response.statusText}`);
}

const data = await response.json();
return data as Estacao;
} catch (error) {
console.error("Erro na requisição:", error);
throw error;
}
};
25 changes: 21 additions & 4 deletions tupan/src/app/_api/get/parametros.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,23 @@ interface Parametro {
modificado: string;
}

// Função para obter o token armazenado
const obterToken = (): string | null => {
return localStorage.getItem("token");
};

export const obterParametros = async (): Promise<Parametro[]> => {
const token = obterToken(); // Obtendo o token armazenado

if (!token) {
throw new Error("Token não encontrado. Por favor, faça login.");
}

try {
const response = await fetch(`${api_route}parametros`, {
method: "GET",
headers: {
"Authorization": `Token 1112a98d58500b7a165191fc56b2a9c1513413e8`,
"Authorization": `Token ${token}`, // Usando o token dinamicamente
"Content-Type": "application/json",
},
});
Expand All @@ -34,13 +45,19 @@ export const obterParametros = async (): Promise<Parametro[]> => {
};

export const obterParametroPorId = async (id: number): Promise<Parametro> => {
const token = obterToken(); // Obtendo o token armazenado

if (!token) {
throw new Error("Token não encontrado. Por favor, faça login.");
}

try {
const response = await fetch(`${api_route}parametros/${id}`, {
method: "GET",
headers: {
"Authorization": `Token 1112a98d58500b7a165191fc56b2a9c1513413e8`,
"Authorization": `Token ${token}`, // Usando o token dinamicamente
"Content-Type": "application/json",
},
},
});

if (!response.ok) {
Expand All @@ -53,4 +70,4 @@ export const obterParametroPorId = async (id: number): Promise<Parametro> => {
console.error("Erro na requisição:", error);
throw error;
}
}
};
37 changes: 37 additions & 0 deletions tupan/src/app/_api/post/enderecos.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { api_route } from "..";

interface Endereco {
logradouro: string;
bairro: string;
cidade: string;
estado: string;
numero: number;
complemento: string;
cep: string;
latitude: number;
longitude: number;
}

export const criarEndereco = async (endereco: Endereco): Promise<Endereco> => {
try {
const response = await fetch(`${api_route}enderecos`, {
method: "POST",
headers: {
"Authorization": `Token 2948c11eaf985f44737d8fa84db99846e8197fae`,
"Content-Type": "application/json",
},
body: JSON.stringify(endereco),
});

const responseData = await response.json();

if (!response.ok) {
throw new Error(`Erro ao criar o endereço: ${response.statusText}`);
}

return responseData;
} catch (error) {
console.error("Erro na requisição do endereço:", error);
throw error;
}
};
55 changes: 55 additions & 0 deletions tupan/src/app/_api/post/estacoes.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import { api_route } from "..";
import { criarEndereco } from "@/app/_api/post/enderecos";

interface Estacao {
nome: string;
topico: string;
ativo: boolean;
criado: string;
modificado: string;
}

interface Endereco {
logradouro: string;
bairro: string;
cidade: string;
estado: string;
numero: number;
complemento: string;
cep: string;
latitude: number;
longitude: number;
}

// Remova o segundo parâmetro 'endereco' porque ele já foi tratado antes
export const criarEstacao = async (estacao: Estacao, enderecoId: number): Promise<any> => {
console.log('Função criarEstacao foi chamada');
try {
// Criando o payload da estação com o endereco (ID) correto
const estacaoComEndereco = { ...estacao, endereco: enderecoId }; // Usar "endereco" diretamente

console.log('Payload enviado:', estacaoComEndereco);

const response = await fetch(`${api_route}estacoes`, {
method: "POST",
headers: {
"Authorization": `Token 2948c11eaf985f44737d8fa84db99846e8197fae`,
"Content-Type": "application/json",
},
body: JSON.stringify(estacaoComEndereco),
});

console.log('Resposta da API ao criar a estação:', response);

if (!response.ok) {
const errorData = await response.json();
console.error('Erro ao criar a estação:', errorData);
throw new Error(`Erro ao criar a estação: ${response.statusText}`);
}

return await response.json();
} catch (error) {
console.error("Erro na requisição:", error);
throw error;
}
};
10 changes: 9 additions & 1 deletion tupan/src/app/_api/post/parametros.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,18 @@ interface Parametro {

export const criarParametro = async (parametro: Parametro): Promise<any> => {
try {

// Recupera o token do localStorage
const token = localStorage.getItem('token');

// Verifica se o token está disponível
if (!token) {
throw new Error('Token não encontrado. Por favor, faça login.');
}
const response = await fetch(`${api_route}parametros`, {
method: "POST",
headers: {
"Authorization": `Token 1112a98d58500b7a165191fc56b2a9c1513413e8`,
"Authorization": `Token ${token} `,
"Content-Type": "application/json",
},
body: JSON.stringify(parametro),
Expand Down
39 changes: 39 additions & 0 deletions tupan/src/app/_api/update/endereco.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import { api_route } from '..';

interface Endereco {
id: number,
logradouro: string;
bairro: string;
cidade: string;
estado: string;
numero: number;
complemento: string;
cep: string;
latitude: number;
longitude: number;
}

export const atualizarEndereco = async (
endereco: Endereco
): Promise<any> => {
try {
const response = await fetch(`${api_route}enderecos/${endereco.id}`, {
method: 'PUT',
headers: {
'Authorization': `Token 2948c11eaf985f44737d8fa84db99846e8197fae`,
'Content-Type': 'application/json',
},
body: JSON.stringify(endereco),
});

if (!response.ok) {
throw new Error(`Erro ao atualizar o Endereço: ${response.statusText}`);
}

const data = await response.json();
return data as Endereco[];
} catch (error) {
console.error('Erro na requisição:', error);
throw error;
}
};
Loading

0 comments on commit 33d7d35

Please sign in to comment.