Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. class DbConnection {
  2. constructor() {
  3. this._con = undefined;
  4. this._pool = undefined;
  5. }
  6.  
  7. _createPool( database , user, password ) {
  8. this._pool = mysql.createPool({
  9. connectionLimit: 100,
  10. host: "localhost",
  11. port: 3306,
  12. database: database,
  13. user: user,
  14. password: password
  15. });
  16. }
  17.  
  18. async openConnection( req ) {
  19. this._createPool(req.database, req.user, req.password );
  20.  
  21. return new Promise((resolve, reject) => {
  22. this._pool.getConnection((err, connection) => {
  23. if (err)
  24. reject( err );
  25. this._con = connection;
  26. resolve();
  27. });
  28. });
  29. }
  30.  
  31. async beginTransaction() {
  32. return new Promise((resolve, reject) => {
  33. this.con.beginTransaction(err => {
  34. if (err) {
  35. this.con.rollback( () => this.con.release() );
  36. reject( err );
  37. }
  38. resolve();
  39. });
  40. });
  41. }
  42.  
  43. get con() {
  44. return this._con;
  45. }
  46.  
  47. close() {
  48. if (this.con)
  49. this.con.release();
  50. }
  51. }
  52.  
  53. class GenericCtrl {
  54.  
  55. constructor( db, dao ) {
  56. this._db = db;
  57. this._dao = dao;
  58. }
  59.  
  60. async buscar( req, res ) {
  61. req.assert( 'id', 'um id é necessário.' ).notEmpty().isInt().withMessage('Deve ser inteiro');
  62.  
  63. if (req.validationErrors())
  64. return res.status( 400 ).json( { erros: req.validationErrors() } );
  65.  
  66. try {
  67. await this._db.openConnection( req );
  68. let response = await this._dao.read( req.params.id );
  69.  
  70. res.status( 200 ).json( response );
  71.  
  72. } catch (e) {
  73. res.status( 500 ).json( { erro: e.toString() } );
  74.  
  75. } finally {
  76. this._db.close();
  77. }
  78. }
  79.  
  80. }
  81.  
  82. class GenericDao {
  83.  
  84. constructor( db ) {
  85. this._db = db;
  86. }
  87.  
  88. get con() {
  89. return this._db.con;
  90. }
  91.  
  92. read( query, sql = undefined, inserts = undefined ) {
  93.  
  94. sql = "SELECT * FROM ?? WHERE ?? = ?";
  95. inserts = [ 'Usuario', 'id', 23 ];
  96.  
  97. sql = mysql.format(sql, inserts);
  98.  
  99. return new Promise( ( resolve, reject ) => {
  100. this.con.query( sql, ( err, result ) => err ? reject( err ) : resolve( result ) );
  101. });
  102. }
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement