Esse repositório não será mais utilizado, pois como estamos utilizando microserviços, foi decidido que esse repositório foi transferido para Gaia-Esporte
Esse serviço é responsável por pegar o clima de um determinado local, referenciado pela longitude e latitude, da API OpenWeatherMap.
Se tiver interesse em como contribuir para o projeto, olhe nossa wiki.
Antes de rodar o projeto é preciso criar um arquivo chamado .env
na pasta raiz com o seguinte conteúdo:
API_KEY={Sua chave da API OpenWeatherMap}
IP_ADDRESS={Seu endereço IP local}
Para conseguir uma chave de API entre no site da OpenWeatherMap.
Para descobrir seu endereço IP local em uma máquina Linux ou Mac rode este comando:
$ ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | grep '192'
Em uma máquina windows rode:
$ ipconfig
E pegue o endereço de IP indicado no campo Endereço IPv4
.
O nosso projeto utiliza o Docker e o Docker Compose como ferramentas de desenvolvimento. Para instalar eles, siga o tutorial no site oficial do Docker.
Após instalar o docker rode o projeto como desenvolvimento da seguinte maneira:
$ sudo docker-compose up --build
Para rodar os testes, rode esse comando:
$ sudo docker-compose run gaiaclima npm run test
Para rodar a folha de estilo, utilize este comando:
$ sudo docker-compose run gaiaclima npm run lint
Aqui se encontra todos os endpoints desse serviço. Todos os endpoints se encontra em localhost:3000
.
Requisição | Endpoint | Parâmetro:Tipo | Descrição |
---|---|---|---|
GET | / | - | Retorna todas as endpoints do microserviço. |
GET | /climate | place: String | Recebe um local e retorna as condições climáticas do mesmo. |
GET | /forecast | place: String | Recebe um local e retorna quarenta previsões das condições climáticas do mesmo do período de cinco dias. |
GET | /sports | place: String | Recebe um local e retorna os esportes favoraveis, com ressalva e com alerta. |
GET | /allSports | - | Recebe todos os esportes presentes no banco de dados. |
GET | /climateForecast | place: String, date: String | Recebe um local e uma data e retorna as previsões das condições climáticas para aquela data e local. |
POST | /sportForecast | telegramId: String, date: String, sport: String, locals: Array | Recebe um objeto de notificação e retorna a favorabilidade do esporte e um objeto de clima para cada local |