Advertisement
Guest User

Untitled

a guest
Sep 18th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.44 KB | None | 0 0
  1. var mysql = require('mysql');
  2. var User = require('../Model/User.js');
  3. var fs = require('fs');
  4. var ErrorConstants1 = require('../Errors.js');
  5. var MessageConstants = require('../message.js');
  6.  
  7.  
  8. function DataBaseConnection() {
  9.  
  10. this.connection = mysql.createConnection({
  11.  
  12. host: 'localhost',
  13. user: 'root',
  14. password: '',
  15. database: 'spn',
  16. port: 3306
  17. });
  18. }
  19.  
  20. DataBaseConnection.prototype.connect = function () {
  21.  
  22. this.connection.connect(function (error) {
  23.  
  24. if (error) {
  25. throw error;
  26. } else {
  27. console.log('Successful Connection');
  28. }
  29. });
  30. }
  31.  
  32. //Aqui debe ser un objeto User
  33. DataBaseConnection.prototype.insertUser = function (user, callback) {
  34.  
  35. var db = this;
  36.  
  37. this.connection.beginTransaction(function (error) {
  38.  
  39. if (error) {
  40. callback(ErrorConstants1.default.data_base_error, null);
  41. }
  42. db.connection.query(
  43. "INSERT INTO person VALUES(" + user.personId + ",'" + user.name + "','USER')", function (error, result) {
  44.  
  45. if (error) {
  46. db.connection.rollback(function () {
  47. callback(ErrorConstants1.default.person_exists, null);
  48. });
  49.  
  50. } else {
  51.  
  52. db.connection.query(
  53. "INSERT INTO user VALUES('" + user.username + "','./DAO/Image/Profile/" + user.username + user.avatar.extension + "','" + user.password + "','" + user.email + "'," + user.personId + ")", function (error, result) {
  54.  
  55. if (error) {
  56. db.connection.rollback(function () {
  57. callback(ErrorConstants1.default.user_exists, null);
  58. });
  59.  
  60. } else {
  61.  
  62. var path = "./DAO/Image/Profile/" + user.username + user.avatar.extension;
  63. fs.writeFile(path, user.avatar.file, 'base64', function (error1) {
  64. if (error1) {
  65.  
  66. db.connection.rollback(function () {
  67. callback(ErrorConstants1.default.image_creation_error, null);
  68. });
  69.  
  70. } else {
  71.  
  72. db.connection.commit(function (err) {
  73. if (err) {
  74. db.connection.rollback(function () {
  75. callback(ErrorConstants1.default.data_base_error, null);
  76. });
  77. }
  78. db.connection.end();
  79. callback(null, MessageConstants.default.user_created);
  80.  
  81. });
  82.  
  83. }
  84. });
  85.  
  86. }
  87. });
  88. }
  89. });
  90. });
  91. /*
  92. function insertPerson(user, db, callback1) {
  93. db.connection.query(
  94. "INSERT INTO person VALUES(" + user.personId + ",'" + user.name + "','USER')", function (error, result) {
  95.  
  96. if (error) {
  97. callback1(ErrorConstants1.default.person_exists, null);
  98. } else {
  99. insert(user, db, callback1);
  100. }
  101. });
  102. }
  103.  
  104. function insert(user, db, callback1) {
  105.  
  106. db.connection.query(
  107. "INSERT INTO user VALUES('" + user.username + "','./DAO/Image/Profile/" + user.username + user.avatar.extension + "','" + user.password + "','" + user.email + "'," + user.personId + ")", function (error, result) {
  108.  
  109. if (error) {
  110. callback1(ErrorConstants1.default.user_exists, null);
  111. } else {
  112.  
  113. var path = "./DAO/Image/Profile/" + user.username + user.avatar.extension;
  114. fs.writeFile(path, user.avatar.file, 'base64', function (error1) {
  115. if (error1) {
  116. db.connection.rollback(function () {
  117. callback1(ErrorConstants1.default.image_creation_error, null);
  118. });
  119.  
  120. } else {
  121. callback1(null, result);
  122. }
  123. });
  124.  
  125. }
  126. });
  127. }
  128.  
  129. insertPerson(user, this, function (error, result) {
  130.  
  131. if (error) {
  132. callback(error, null);
  133. } else {
  134. callback(null, MessageConstants.default.user_created);
  135. }
  136. });
  137. */
  138. }
  139.  
  140. DataBaseConnection.prototype.logIn = function (username, password, callback) {
  141.  
  142. function log(username, password, db, callback1) {
  143.  
  144. db.connection.query("SELECT * FROM user, person WHERE user.person = person.personId AND user.username = '" + username + "'", function (error, result, fields) {
  145.  
  146. if (error) {
  147. callback1(ErrorConstants1.default.data_base_error, null);
  148. } else {
  149. if (result.length > 0) {
  150.  
  151. if (result[0].password == password) {
  152. callback1(null, result[0]);
  153.  
  154. } else {
  155. callback1(ErrorConstants1.default.password_incorrect, null);
  156. }
  157. } else {
  158. callback1(ErrorConstants1.default.username_does_not_exists, null);
  159. }
  160.  
  161. }
  162. });
  163.  
  164. }
  165.  
  166. log(username, password, this, function (error, result) {
  167.  
  168. if (error) {
  169. callback(error, null);
  170. } else {
  171. callback(null, result);
  172. }
  173. });
  174.  
  175. };
  176.  
  177. DataBaseConnection.prototype.createSession = function (session, callback) {
  178.  
  179. function create(session, db, callback1) {
  180.  
  181. db.connection.query("INSERT INTO session VALUES('" + session.sessionId + "', '" + session.status + "', '" + session.IP + "', '" + session.user.personId + "')", function (error, result, fields) {
  182.  
  183. if (error) {
  184. callback1(ErrorConstants1.default.session_exists, null);
  185. } else {
  186. callback1(null, MessageConstants.default.session_created);
  187. }
  188. });
  189. }
  190.  
  191. create(session, this, function (error, result) {
  192.  
  193. if (error) {
  194. callback(error, null);
  195. } else {
  196. callback(null, result);
  197. }
  198. });
  199. }
  200.  
  201. DataBaseConnection.prototype.getSession = function (sessionId, callback) {
  202.  
  203. this.connection.query("SELECT * FROM user, session, person WHERE user.person = session.user AND user.person = person.personId AND session.sessionId = '" + sessionId + "'", function (error, result, fields) {
  204. if (error) {
  205. callback(ErrorConstants1.default.data_base_error, null);
  206. } else {
  207. if (result.length > 0) {
  208. callback(null, result[0]);
  209. } else {
  210. callback(ErrorConstants1.default.session_does_not_exists, null);
  211. }
  212. }
  213. });
  214. }
  215.  
  216. DataBaseConnection.prototype.getLastAlbumId = function (callback) {
  217.  
  218. this.connection.query("SELECT MAX(albumId) as 'albumId' FROM album", function (error, result, fields) {
  219.  
  220. if (error) {
  221. callback(ErrorConstants1.default.data_base_error, null);
  222. } else {
  223. callback(null, result[0].albumId);
  224. }
  225. });
  226. }
  227.  
  228. DataBaseConnection.prototype.getLastIdImage = function (callback) {
  229.  
  230. this.connection.query("SELECT MAX(idImage) as 'idImage' FROM image", function (error, result, fields) {
  231.  
  232. if (error) {
  233. callback(ErrorConstants1.default.data_base_error, null);
  234. } else {
  235. callback(null, result[0].idImage);
  236. }
  237. });
  238. }
  239.  
  240. DataBaseConnection.prototype.getUser = function (username, callback) {
  241.  
  242. this.connection.query("SELECT * FROM user,person WHERE person.personId = user.person AND username = '" + username + "'", function (error, result, fields) {
  243.  
  244. if (error) {
  245. callback(ErrorConstants1.default.data_base_error, null);
  246. } else {
  247.  
  248. if (result.length > 0) {
  249.  
  250. callback(null, result[0]);
  251. } else {
  252. callback(ErrorConstants1.default.username_does_not_exists, null);
  253. }
  254. }
  255. });
  256. }
  257.  
  258. DataBaseConnection.prototype.insertAlbum = function (album, callback) {
  259.  
  260. this.connection.query("INSERT INTO album VALUES(" + album.albumId + ",'" + album.name + "','" + album.description + "','" + album.user.personId + "')", function (error, result) {
  261. if (error) {
  262. callback(ErrorConstants1.default.album_exists, null);
  263. } else {
  264. callback(null, MessageConstants.default.album_created);
  265. }
  266. });
  267. }
  268.  
  269. DataBaseConnection.prototype.insertImage = function (image, callback) {
  270.  
  271. this.connection.query("INSERT INTO image VALUES('" + image.idImage + "','./DAO/Image/Album/" + image.idImage + image.photo.extension + "','" + image.description + "','" + image.title + "','" + image.comment + "','" + image.user.personId + "')", function (error, result) {
  272. if (error) {
  273. callback(ErrorConstants1.default.image_exists, null);
  274. } else {
  275.  
  276. var path = "./DAO/Image/Album/" + image.idImage + image.photo.extension;
  277. fs.writeFile(path, image.photo.file, 'base64', function (error1) {
  278. if (error1) {
  279.  
  280. callback(ErrorConstants1.default.image_creation_error, null);
  281. } else {
  282. callback(null, MessageConstants.default.image_created);
  283. }
  284. });
  285.  
  286. }
  287. });
  288. }
  289.  
  290. DataBaseConnection.prototype.getLastOrderNumber = function (album, callback) {
  291.  
  292. this.connection.query("SELECT MAX(orderNumber) as orderNumber FROM albumximage WHERE album = '" + album + "'", function (error, result, fields) {
  293.  
  294. if (error) {
  295. callback(ErrorConstants1.default.data_base_error, null);
  296. } else {
  297.  
  298. if (result[0].orderNumber != null) {
  299. callback(null, parseInt(result[0].orderNumber) + 1);
  300. } else {
  301. callback(null, 1);
  302. }
  303. }
  304. });
  305. }
  306. DataBaseConnection.prototype.insertAlbumxImage = function (albumxImage, callback) {
  307.  
  308. this.connection.query("INSERT INTO albumximage VALUES('" + albumxImage.orderNumber + "','" + albumxImage.image + "','" + albumxImage.album + "')", function (error, result) {
  309.  
  310. if (error) {
  311. callback(ErrorConstants1.default.albumximage_exists, null);
  312. } else {
  313. callback(null, MessageConstants.default.albumximage_created);
  314. }
  315. });
  316. }
  317.  
  318. DataBaseConnection.prototype.getImage = function (image, callback) {
  319.  
  320. this.connection.query("SELECT * FROM image WHERE idImage = '" + image + "'", function (error, result, fields) {
  321.  
  322. if (error) {
  323. callback(ErrorConstants1.default.data_base_error, null);
  324. } else {
  325.  
  326. if (result.length > 0) {
  327.  
  328. callback(null, result[0]);
  329. } else {
  330.  
  331. callback(ErrorConstants1.default.image_does_not_exists, null);
  332.  
  333. }
  334. }
  335. });
  336. }
  337.  
  338. DataBaseConnection.prototype.updateImage = function (image, callback) {
  339.  
  340. this.connection.query("UPDATE image SET photo = './DAO/Image/Album/" + image.idImage + image.photo.extension + "', description = '" + image.description + "', title ='" + image.title + "', comment = '" + image.comment + "' WHERE idImage = '" + image.idImage + "'", function (error, result) {
  341. if (error) {
  342. callback(ErrorConstants1.default.data_base_error, null);
  343. } else {
  344.  
  345. var path = "./DAO/Image/Album/" + image.idImage + image.photo.extension;
  346. fs.writeFile(path, image.photo.file, 'base64', function (error1) {
  347. if (error1) {
  348. callback(ErrorConstants1.default.image_updating_error, null);
  349. } else {
  350. callback(null, MessageConstants.default.image_updated);
  351. }
  352. });
  353.  
  354. }
  355. });
  356. }
  357.  
  358. module.exports = DataBaseConnection;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement