complete redesign: use nodejs on server instead of php - documentation to be updated
This commit is contained in:
		
							
								
								
									
										7
									
								
								nodejs/database/config.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								nodejs/database/config.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
        "host"              : "localhost",
 | 
			
		||||
        "user"              : "root",
 | 
			
		||||
        "port"              : 8654,
 | 
			
		||||
        "password"          : "ert456",
 | 
			
		||||
        "database"          : "safechat"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										11
									
								
								nodejs/database/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								nodejs/database/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
module.exports = function() {
 | 
			
		||||
    var mysql = require('mysql');
 | 
			
		||||
    var fs = require('fs');
 | 
			
		||||
    var config = require(__dirname+'/config.json');
 | 
			
		||||
    config.multipleStatements = true;
 | 
			
		||||
    var pool = mysql.createPool(config);
 | 
			
		||||
    
 | 
			
		||||
    pool.query(fs.readFileSync(__dirname+'/schema.sql').toString());
 | 
			
		||||
    
 | 
			
		||||
    return pool;
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										30
									
								
								nodejs/database/schema.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								nodejs/database/schema.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
			
		||||
CREATE TABLE IF NOT EXISTS `user` (
 | 
			
		||||
  `name` varchar(50) NOT NULL UNIQUE COMMENT 'unique name of the user',
 | 
			
		||||
  `pubkey` text NOT NULL COMMENT 'armored gnupg public key of the user',
 | 
			
		||||
  PRIMARY KEY (`name`)
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='list of all registered users and their public keys';
 | 
			
		||||
create table if not exists `message` (
 | 
			
		||||
        `id`
 | 
			
		||||
          int not null auto_increment
 | 
			
		||||
          comment "id of the message, it is used in the client to check if a message has already been downloaded or not",
 | 
			
		||||
        `time`
 | 
			
		||||
          timestamp default current_timestamp
 | 
			
		||||
          comment "time when the message has been stored on the server",
 | 
			
		||||
        `user`
 | 
			
		||||
          varchar(50) not null
 | 
			
		||||
          comment "name of the user that sent the message",
 | 
			
		||||
        `msg`
 | 
			
		||||
          longtext not null
 | 
			
		||||
          comment "message content, must be armored gnupg encrypted format",
 | 
			
		||||
        primary key (id),
 | 
			
		||||
        foreign key (user)
 | 
			
		||||
          references user(name)
 | 
			
		||||
          on delete cascade
 | 
			
		||||
          on update cascade
 | 
			
		||||
      ) character set utf8 engine=innodb
 | 
			
		||||
        comment="table to hold all messages for later download by the receiver";
 | 
			
		||||
create table if not exists options (
 | 
			
		||||
       name varchar(50) not null unique comment "option name",
 | 
			
		||||
       value text not null comment "option value",
 | 
			
		||||
       primary key (name)
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment="table for system settings";
 | 
			
		||||
		Reference in New Issue
	
	Block a user