Advertisement
Guest User

Untitled

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