findCoordinatesFromConsumer.js 1.64 KB
var findCoordinates = function(consumerCode, callback) {
  poolPg.connect(function(err, client, done) {
    if (err) {
      console.log("não capaz de realizar a conexão com o banco de dados" + err);
      res.status(400).send(err);
    }
    client.query("SET search_path TO public, sc_mbc, gw_saa", function(
      err1,
      result
    ) {
      // definição do schema em que irá realizar as queries
      if (err1) {
        console.log("Não foi capaz de mudar o schema " + err1);
        res.status(400).send(err1);
      }
    });

    var qrySql =
      "select gw_saa.connec.connec_id, \
                ST_X(ST_Transform(gw_saa.connec.the_geom,4326)) as zoom_x, \
                ST_Y(ST_Transform(gw_saa.connec.the_geom,4326)) as zoom_y, \
                gw_saa.connec.state, gw_saa.connec.sector_id, gw_saa.connec.dma_id, gw_saa.connec.category_type \
            from gw_saa.connec \
            inner join gw_saa.rtc_hydrometer_x_connec \
            on gw_saa.connec.connec_id = gw_saa.rtc_hydrometer_x_connec.connec_id \
            where gw_saa.rtc_hydrometer_x_connec.hydrometer_id = '" +
      consumerCode +
      "'";
    client.query(qrySql, function(err1, result) {
      if (err1) {
        console.log(
          "não capaz de realizar a querie com o banco de dados" + err1
        );
        res.status(400).send(err1);
      }
      if (result.rowCount === 0) {
        console.log("não encontrou");
      } else {
        centro_x = result.rows[0]["zoom_x"];
        centro_y = result.rows[0]["zoom_y"];
        done(); //fecha a conexão
        return callback(centro_x, centro_y);
      }
    });
  });
};

module.exports = findCoordinates;