aboutsummaryrefslogtreecommitdiffstats
path: root/rates.js
blob: eda6dec457e8ec01bcce19d5679ee5ca9a9ca62e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const axios = require("axios");
const config = require("./config");
const l = require("pino")();

module.exports = (app, socket) => {
  let binance = require("./binance")(app, socket);

  let fetchRates;
  (fetchRates = async () => {
    let rates = require("./devrates");

    if (process.env.NODE_ENV === "production") {
      try {
        let res = await axios.get(
          `http://data.fixer.io/api/latest?access_key=${config.fixer}`
        );

        let fx = res.data.rates;

        fx &&
          Object.keys(fx).map(symbol => {
            rates[symbol] = fx[symbol] / fx["USD"];
          });
      } catch (e) {
        l.error("error fetching rates", e);
      }
    }

    app.set("fxrates", rates);

    setTimeout(fetchRates, 7200000);
  })();

  setInterval(() => {
    socket.emit("rates", app.get("rates"));
  }, 1000);

  setInterval(() => {
    binance.terminate();
    binance = require("./binance")(app, socket);
  }, 360000);
};