This commit is contained in:
2026-01-26 00:26:20 -03:00
parent 17bb8a15fe
commit 2011d1c969
4 changed files with 32 additions and 15 deletions

View File

@@ -1,7 +1,15 @@
import { log } from "./logger.js"
import { log } from "./logger.js";
import { ErrorResponse, GeoResponse } from "./types.js";
export async function ubicacion(lugar: string, limit = '1') {
const response = await fetch(`${process.env.WEATHER_URL}/geo/1.0/direct?q=${lugar}&limit=${limit}&appid=${process.env.WEATHER_API_KEY}`)
log('GET', response)
return response
export async function ubicacion(lugar: string, limit = '1'): Promise<ErrorResponse | GeoResponse> {
const response = await fetch(`${process.env.WEATHER_URL}/geo/1.0/direct?q=${lugar}&limit=${limit}&appid=${process.env.WEATHER_API_KEY}`);
log('GET', response);
if (!response.ok) {
return {
status: response.status,
message: response.statusText,
};
} else {
return await response.json();
}
}

View File

@@ -1,15 +1,13 @@
import { ubicacion } from "./clima.js";
if (typeof process.env.WEATHER_URL === 'undefined' || typeof process.env.WEATHER_API_KEY === 'undefined' || typeof process.argv[2] === 'undefined') {
console.error('WEATHER_URL', typeof process.env.WEATHER_URL)
console.error('WEATHER_API_KEY', typeof process.env.WEATHER_API_KEY)
console.error('Ciudad', typeof process.argv[2])
console.error('WEATHER_URL', typeof process.env.WEATHER_URL);
console.error('WEATHER_API_KEY', typeof process.env.WEATHER_API_KEY);
console.error('Ciudad', typeof process.argv[2]);
process.exit(0);
}
const buqueda = await ubicacion(process.argv[2])
const buqueda = await ubicacion(process.argv[2]);
console.log(buqueda.status, buqueda.statusText)
console.log('url', buqueda.url)
console.log('Body', await buqueda.json())
console.log('Busqueda', buqueda);

View File

@@ -8,9 +8,8 @@ console.log(filename, fileExist);
if (!fileExist) appendFileSync(filename, ['Date', 'Method', 'Domain', 'Path', 'Status'].join(',') + '\n', 'utf8');
export const log = (method: string, response: Response) => {
const { url, status } = response,
{ host, pathname } = new URL(url);
appendFileSync(filename, [isoDateInTimeZone(), method, host, pathname, status].join(',') + '\n', 'utf8');
const { host, pathname } = new URL(response.url);
appendFileSync(filename, [isoDateInTimeZone(), method, host, pathname, response.status].join(',') + '\n', 'utf8');
};
function isoDateInTimeZone(timeZone = 'America/Buenos_Aires', date = new Date()) {

12
src/types.ts Normal file
View File

@@ -0,0 +1,12 @@
export type ErrorResponse = {
status: number;
message: string;
};
export type GeoResponse = Array<{
name: string;
lat: number;
lon: number;
country: string;
state: string;
}>;