const jwt = require("jsonwebtoken"); const io = require("socket.io"); const Sequelize = require("sequelize"); /* eslint-disable-next-line */ const pick = (O, ...K) => K.reduce((o, k) => ((o[k] = O[k]), o), {}); const sids = {}; socket = io(server, { origins: "*:*" }); emit = (username, msg, data) => { if (data.username !== undefined) data = pick(data, ...whitelist); if (!sids[username]) return; sids[username].map((sid, i) => { try { socket.to(sid).emit(msg, data); } catch (e) { sids[username].splice(i, 1); } }); }; socket.use((socket, next) => { try { let token = socket.handshake.query.token; let user = jwt.decode(token).username; socket.request.user = user; sids[user] ? sids[user].push(socket.id) : (sids[user] = [socket.id]); sids[socket.id] = user; } catch (e) { l.error("error creating socket", e); } next(); }); socket.sockets.on("connect", async socket => { socket.emit("connected"); if (app.get("rates")) socket.emit("rate", app.get("rates").ask); socket.on("getuser", async (data, callback) => { l.info("socket open", socket.request.user); const user = await db.User.findOne({ include: [ { model: db.Payment, as: "payments", order: [["id", "DESC"]], received: { [Sequelize.Op.ne]: null }, limit: 12 } ], where: { username: socket.request.user } }); callback(user); }); socket.on("disconnect", s => { let user = sids[socket.id]; l.info("socket closed", user); sids[user].splice(sids[user].indexOf(socket.id), 1); delete sids[socket.id]; }); }); ue='prod'>prod coinos server — legacy coinos.io backend (Lightning, on-chain, Liquid)coinos
aboutsummaryrefslogtreecommitdiffstats
path: root/db/models/codes.js
blob: 66a8f7e0b7dd1f7a6c62c8a907a82491019d3c1b (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
const { DataTypes } = require('sequelize');

const attributes = {
  code: {
    type: DataTypes.STRING(255),
    allowNull: false,
    defaultValue: null,
    primaryKey: true,
    autoIncrement: false,
    comment: null,
    field: "code"
  },
  text: {
    type: DataTypes.TEXT,
    allowNull: true,
    defaultValue: null,
    primaryKey: false,
    autoIncrement: false,
    comment: null,
    field: "text"
  },
};

const options = {
  tableName: "codes",
  comment: "",
  indexes: [],
  timestamps: false
};

db["Code"] = db.define("codes_model", attributes, options);