Advertisement
Guest User

Untitled

a guest
Feb 19th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. var lang = require('../lang.js');
  2. var config = require('../config.js');
  3. var fieldValidator = require('../libs/field_validator');
  4. var microtime = require('microtime');
  5. var crypto = require('crypto');
  6. //Presets
  7. var lang = new lang();
  8. var rlang = lang.returnMessage;
  9. var fieldValidator = new fieldValidator();
  10. var moment = require('moment');
  11.  
  12. module.exports = function(app, my){
  13. //Primeiro os registros
  14. /// Account Register
  15. ////
  16. var check_username = function(username){
  17. return new Promise(function(resolve, reject) {
  18. my.query('SELECT username FROM 4h_users WHERE ?', username, function (error, result, fields) {
  19. if (error) {
  20. reject({"status": "error", "code":10 ,"message": rlang(lang, 10)});
  21. }else{
  22. if(result.lenght > 0){
  23. reject({"status": "error", "code":10 ,"message": rlang(lang, 10)});
  24. }else{
  25. resolve(true);
  26. }
  27. };
  28. });
  29. });
  30. }
  31. check_username().then(function(id_user) {
  32. console.log(value);
  33. }, function(reason) {
  34. res.
  35. });
  36.  
  37.  
  38. app.post('/api/usuario/registrar', function(req, res){
  39. if(!req.body.lang){
  40. return res.send({"status": "error", "code":1 ,"message": 'Blank Language'});
  41. }else{
  42. var lang = req.body.lang;
  43. }
  44. if(!req.body.recode){
  45. return res.send({"status": "error", "code":4 ,"message": rlang(lang, 4)});
  46. }else if(!req.body.username){
  47. return res.send({"status": "error", "code":1 ,"message": rlang(lang, 1)});
  48. }else if(!req.body.password){
  49. return res.send({"status": "error", "code":3 ,"message": rlang(lang, 3)});
  50. }else if(!req.body.email){
  51. return res.send({"status": "error", "code":5 ,"message": rlang(lang, 5)});
  52. }else if(req.body.reemail != req.body.email){
  53. return res.send({"status": "error", "code":6 ,"message": rlang(lang, 6)});
  54. }
  55.  
  56. my.query('SELECT email FROM 4h_users WHERE ?', req.body.email, function (error, result, fields) {
  57. if (error) {
  58. return res.send({"status": "error", "code":10 ,"message": rlang(lang, 10)});
  59. }else{
  60. return res.send({"status": "error", "code":13 ,"message": rlang(lang, 13)});
  61. };
  62. });
  63.  
  64. if(!fieldValidator.username.isValid(req.body.username)){
  65. return res.send({"status": "error", "code":9 ,"message": rlang(lang, 9)});
  66. }else if(!fieldValidator.email.isValid(req.body.email)){
  67. return res.send({"status": "error", "code":7 ,"message": rlang(lang, 7)});
  68. }else if(!fieldValidator.password.isValid(req.body.password)){
  69. return res.send({"status": "error", "code":8 ,"message": rlang(lang, 8)});
  70. }
  71.  
  72. var ip = generate_ip();
  73. var salt = crypto.createHash('sha256').update(microtime.now()+req.body.username).digest("hex");
  74. var password = crypto.createHash('sha512').update(salt+req.body.password).digest("hex");
  75.  
  76. var user = {
  77. username: req.body.username,
  78. email: req.body.email,
  79. password: password,
  80. salt: salt,
  81. token_expiration: microtime.now(),
  82. money: config.default_bonus.money,
  83. hcoins: config.default_bonus.hcoins,
  84. register_date: moment().format('YYYY-MM-DD HH:mm:ss'),
  85. token: crypto.createHash('sha256').update(microtime.now()+req.body.username).digest("hex"),
  86. token_expiration: microtime.now()+config.expiration.login,
  87. offline_mode_expiration: 0
  88. };
  89.  
  90. //Check if machine ip exists and generate another one
  91. check_ip_status(my, ip);
  92.  
  93. // Time to mysql
  94.  
  95. //Add new user to mysql
  96. my.query('INSERT INTO 4h_users SET ?', user, function (error, result, fields) {
  97. if (error) {
  98. console.log(error);
  99. return res.send({"status": "error", "code":10 ,"message": rlang(lang, 10)});
  100. }else{
  101. var machine = {
  102. ip: ip,
  103. id_user: result.insertId
  104. };
  105. //Add new machine to mysql
  106. my.query('INSERT INTO 4h_machines SET ?', machine, function (error, result, fields) {
  107. if (error) {
  108. console.log(error);
  109. return res.send({"status": "error", "code":10 ,"message": rlang(lang, 10)});
  110. }else{
  111. return res.send({"status": "success", "code":11 ,"message": rlang(lang, 11)});
  112. };
  113. });
  114. };
  115. });
  116. });
  117. }
  118.  
  119.  
  120. function generate_ip(){
  121. return (Math.floor(Math.random() * 254) + 1) + "." + (Math.floor(Math.random() * 254) + 1) + "." + (Math.floor(Math.random() * 254) + 1) + "." + (Math.floor(Math.random() * 254) + 1);
  122. }
  123. function check_ip_status(my, ip){
  124. my.query('SELECT ip FROM 4h_machines WHERE ?', ip, function (error, result, fields) {
  125. if (error) {
  126. return res.send({"status": "error", "code":10 ,"message": rlang(lang, 10)});
  127. }else{
  128. if(result.lenght > 0){
  129. ip = generate_ip();
  130. check_ip_status(ip);
  131. }
  132. };
  133.  
  134. });
  135. }
  136. //id_user, username, salt, password, email, avatar_url, 4h_coins, money, last_login, register_date, token, token_expiration, reputation, actions, email_verify, modo_offline_expiration
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement