FullStack Devs| Rising Water

Team Updates

var request = require("request")

module.exports = {

getWeatherForecast:function (lat, long, callback) {

request("https://api.hgbrasil.com/weather?key=dde75659&lat=" + lat + "&log=" + long + "&user_ip=remote", function (error, response, body) {

callback(error, response, body)

})

}

}

L
Lucas Alves Pereira

var request = require("request")

module.exports = {

getFloodRisk:function(lat1, long1, lat2, long2, callback){

var url='https://portal1.snirh.gov.br/ana/rest/services/dados_abertos/Trechos_de_Curso_de_Agua_Inundaveis/FeatureServer/0/query?where=1%3D1&outFields=*&geometry='+long1+'%2C'+lat1+'%2C'+long2+'%2C'+lat2+'&geometryType=esriGeometryEnvelope&inSR=4326&spatialRel=esriSpatialRelIntersects&outSR=4326&f=json'

request(url, function (error, response, body) {

callback(error, response, body)

})

}

}

L
Lucas Alves Pereira

const express = require('express')

const apihg = require('./services/hgtempo')

const apiana = require('./services/ana')

const app = express()

app.get('/floodrisk', function (req, res) {

apihg.getWeatherForecast(req.query.clientLat, req.query.clientLong, function (errHg, respHg, bodyHg) {

apiana.getFloodRisk(req.query.firstLat, req.query.firstLong, req.query.secondLat, req.query.secondLong, function (errAna, respAna, bodyAna) {

var bodyHgJson = JSON.parse(bodyHg)

var returnHg = {

condition: bodyHgJson.results.condition_slug,

forecast: bodyHgJson.results.forecast,

}

var vulnerabilidade = JSON.parse(bodyAna).features[0].attributes.VULNERABILIDADE

var condicao = returnHg.condition

var grauRisco;

if (condicao == "storm" && vulnerabilidade == "Alta" || condicao == "hail" && vulnerabilidade == "Alta") {

grauRisco = "Muito Alto"

} else if (condicao == "storm" && vulnerabilidade == "Media" || condicao == "hail" && vulnerabilidade == "Media" ||

condicao == "rain" && vulnerabilidade == "Alta" || condicao == "fog" && vulnerabilidade == "Alta") {

grauRisco = "Alto"

} else if (condicao == "storm" && vulnerabilidade == "Baixa" || condicao == "hail" && vulnerabilidade == "Baixa" ||

condicao == "rain" && vulnerabilidade == "Media" || condicao == "clear_day" && vulnerabilidade == "Alta" ||

condicao == "clear_night" && vulnerabilidade == "Alta" || condicao == "cloud" && vulnerabilidade == "Alta" ||

condicao == "cloudly_day" && vulnerabilidade == "Alta" || condicao == "cloudly_day" && vulnerabilidade == "Alta" ||

condicao == "cloudly_night" && vulnerabilidade == "Alta") {

grauRisco = "Médio"

} else if (condicao == "rain" && vulnerabilidade == "Baixa" || condicao == "fog" && vulnerabilidade == "Media" ||

condicao == "clear_day" && vulnerabilidade == "Media" || condicao == "clear_night" && vulnerabilidade == "Media" ||

condicao == "cloud" && vulnerabilidade == "Media" || condicao == "cloudly_day" && vulnerabilidade == "Media" ||

condicao == "cloudly_night" && vulnerabilidade == "Media") {

grauRisco = "baixo"

} else if (condicao == "fog" && vulnerabilidade == "Baixa" || condicao == "clear_day" && vulnerabilidade == "Baixa" ||

condicao == "clear_night" && vulnerabilidade == "Baixa" || condicao == "cloudly_day" && vulnerabilidade == "Baixa" ||

condicao == "cloudly_night" && vulnerabilidade == "Baixa") {

grauRisco = "Muito Baixo"

} else {

grauRisco = "indefinido"

}

var json = { grauRisco: grauRisco }

res.json(json)

})

})

})

app.listen(3000, function () {

console.log("O servidor na porta 3000 está online")

})

L
Lucas Alves Pereira