1
0

session.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const DatabaseModel = require("./DatabaseModel.js").DatabaseModel;
  2. function SessionModel(sessionInfos) {
  3. DatabaseModel.call(this);
  4. this.userAgent = sessionInfos?.userAgent || "";
  5. this.ipAddress = sessionInfos?.ipAddress || "";
  6. this.loginDateTime = new Date(sessionInfos?.loginDateTime || 0);
  7. this.username = sessionInfos?.username || "";
  8. this.sessionId = sessionInfos?.sessionId || "";
  9. this.instance = sessionInfos?.instance || "";
  10. }
  11. SessionModel.prototype = Object.create(DatabaseModel.prototype);
  12. SessionModel.prototype.getTableName = function() {
  13. return "session";
  14. }
  15. SessionModel.prototype.createOrUpdateBase = async function(dbHelper) {
  16. await dbHelper.runSql(`CREATE TABLE IF NOT EXISTS 'session' (
  17. sessionId STRING NOT NULL,
  18. instance string NOT NULL,
  19. useragent STRING NOT NULL,
  20. remoteAddress STRING NOT NULL,
  21. loginDateTime TIMESTAMP NOT NULL,
  22. username STRING NOT NULL,
  23. PRIMARY KEY (sessionId, instance))`);
  24. }
  25. SessionModel.prototype.describe = function() {
  26. return {
  27. "sessionId": this.sessionId,
  28. "useragent": this.userAgent,
  29. "remoteAddress": this.ipAddress,
  30. "loginDateTime": this.loginDateTime.getTime(),
  31. "username": this.username,
  32. "instance": this.instance
  33. };
  34. }
  35. SessionModel.prototype.versionColumn = function() { return "loginDateTime"; }
  36. SessionModel.prototype.fromDb = function(dbObj) {
  37. this.sessionId = dbObj["sessionId"];
  38. this.userAgent = dbObj["useragent"];
  39. this.ipAddress = dbObj["remoteAddress"];
  40. this.loginDateTime.setTime(dbObj["loginDateTime"]);
  41. this.username = dbObj["username"];
  42. this.instance = dbObj["instance"];
  43. }
  44. module.exports.SessionModel = SessionModel;