{"id":27171073,"url":"https://github.com/severidade/weather360-pro","last_synced_at":"2025-04-09T08:29:44.294Z","repository":{"id":255370389,"uuid":"848396271","full_name":"severidade/weather360-pro","owner":"severidade","description":"Este aplicativo permite ao usuário buscar informações meteorológicas de uma cidade específica, utilizando a API do OpenWeather.","archived":false,"fork":false,"pushed_at":"2024-11-06T11:16:05.000Z","size":212,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-16T19:54:43.514Z","etag":null,"topics":["axios-react"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/severidade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-27T17:24:29.000Z","updated_at":"2024-11-06T11:16:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"4a6e7c49-363e-45f1-a3cb-aa9f087bb331","html_url":"https://github.com/severidade/weather360-pro","commit_stats":null,"previous_names":["severidade/weather360-pro"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/severidade%2Fweather360-pro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/severidade%2Fweather360-pro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/severidade%2Fweather360-pro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/severidade%2Fweather360-pro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/severidade","download_url":"https://codeload.github.com/severidade/weather360-pro/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248002784,"owners_count":21031668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axios-react"],"created_at":"2025-04-09T08:29:43.690Z","updated_at":"2025-04-09T08:29:44.285Z","avatar_url":"https://github.com/severidade.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather360 Pro *\nEste aplicativo permite ao usuário buscar informações meteorológicas de uma cidade específica, utilizando a API do OpenWeatherMap. \n\n\n# Documentação: Tratamento de Erros ao Fazer Requisição à API do OpenWeatherMap\n\n## Requisitos\n\n### 1. Verificação de Campo Preenchido\n\n- **Objetivo:** Garantir que o usuário preencha o campo de entrada antes de enviar a requisição.\n- **Mensagem de Erro:** Se o campo de entrada estiver vazio, exiba a mensagem: **\"Por favor, digite o nome de uma cidade.\"**\n\n### 2. Feedback ao Usuário Após Envio de Requisição à API\n\n#### 2.1. Verificação do Status da Resposta 404\n\n- **Objetivo:** Informar ao usuário se a cidade digitada não for encontrada na base de dados da API.\n- **Mensagem de Erro:** Se a resposta da API for `404`, exiba a mensagem: **\"Cidade não encontrada. Por favor, verifique o nome e tente novamente.\"**\n\n#### 2.2. Erros do Axios\n\n- **Objetivo:** Tratar erros específicos do Axios, como problemas de rede ou erros internos da API, que não sejam relacionados a um status `404`.\n- **Mensagem de Erro:** Para erros diferentes de `404`, exiba a mensagem: **\"Erro ao buscar os dados do clima. Tente novamente mais tarde.\"**\n\n#### 2.3. Erros Não Relacionados\n\n- **Objetivo:** Capturar e tratar erros que podem ocorrer fora dos contextos acima, como erros inesperados em outras partes do código.\n- **Mensagem de Erro:** **\"Ocorreu um erro inesperado.\"**\n\n\n## Melhorias na Experiência do Usuário\n\nPara melhorar a usabilidade da aplicação e retornar o nome dos países, e não somente as siglas, criei, com a ajuda do ChatGPT, um [arquivo que mapeia](https://github.com/severidade/weather360-pro/blob/main/src/utils/countries.tsx) cada sigla de país para o nome completo correspondente, cobrindo todas as nações reconhecidas pela ISO 3166-1.\n\nImportei o arquivo com o mapeamento no componente [DailyWeather](https://github.com/severidade/weather360-pro/blob/main/src/components/DailyWeather/index.tsx) e o utilize para obter o nome completo do país com base na sigla fornecida pela API.\n\n### Exemplo de Código\n\n```typescript\nconst countryName = countryMapping[data.sys.country] || data.sys.country;\n```\n\nO código acima verifica diretamente se a sigla do país ``data.sys.country`` existe como uma chave no objeto ``countryMapping``. Se encontrar a chave, retorna o valor correspondente ao nome completo do país. Caso não encontre, retorna a própria sigla do país.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseveridade%2Fweather360-pro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseveridade%2Fweather360-pro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseveridade%2Fweather360-pro/lists"}