all repos — tipigee @ e4bd0eea3d04e2f897dee6b4d8241fb585f43a54

(Very) old version of Kokyo

db.js (view raw)

 1const redis = require("redis");
 2const config = require("./config.json");
 3const clientRedis = redis.createClient(6379, config.server.redis);
 4const _ = require("lodash");
 5
 6clientRedis.on("connect", function() {
 7  console.log("Connected to redis");
 8});
 9
10const saveUserStop = (service, userId, stopCode) => {
11  clientRedis.hsetnx(`${service}:${userId}`, stopCode, 0);
12  clientRedis.hincrby(`${service}:${userId}`, stopCode, 1);
13  clientRedis.hsetnx(`stop:${stopCode}`, "number", 0);
14  clientRedis.hincrby(`stop:${stopCode}`, "number", 1);
15  clientRedis.hset(`stop:${stopCode}`, "last-time", Date.now());
16};
17
18const getUserStops = (service, userId) =>
19  new Promise((resolve, reject) => {
20    clientRedis.hgetall(`${service}:${userId}`, (err, user) => {
21      if (err) return reject(err);
22      const sortedStops = _.reverse(
23        _.sortBy(
24          _.map(user, (number, code) => ({ code, number: parseInt(number) })),
25          "number"
26        )
27      );
28      resolve(sortedStops);
29    });
30  });
31
32const getStopName = stopCode =>
33  new Promise((resolve, reject) => {
34    clientRedis.hget(
35      `stop:${stopCode}`,
36      "name",
37      (err, stopName) => (err ? reject(err) : resolve(stopName))
38    );
39  });
40
41const addRequest = type => {
42  const date = new Date().toLocaleDateString();
43  clientRedis.hsetnx(`request:${date}`, type, 0);
44  clientRedis.hincrby(`request:${date}`, type, 1);
45};
46
47module.exports = {
48  saveUserStop,
49  getUserStops,
50  getStopName,
51  addRequest,
52};