Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.12 KB | None | 0 0
  1. 'use strict'
  2. const Hapi = require('hapi');
  3. const server = new Hapi.Server();
  4. server.connection({ port: 3000, host: 'localhost' });
  5.  
  6. var config = {
  7. userName: "sa",
  8. password: "password.123",
  9. server: ".",
  10. options:
  11. {
  12. database: "Memory"
  13. }
  14. }
  15. var Connection = require('tedious').Connection;
  16. var Request = require('tedious').Request;
  17. var TYPES = require('tedious').TYPES;
  18.  
  19.  
  20.  
  21. //----------------------------------------------------------------------------
  22.  
  23.  
  24.  
  25.  
  26. function login(user, pass, reply) {
  27. var connection = new Connection(config); //CONNESSIONE SU OGNI METODO, CI VUOLE SEMPRE
  28.  
  29. connection.on('connect', function (err) {
  30. if (err) {
  31. console.log(err);
  32. }
  33. else {
  34. console.log('Connected');
  35. var Risposta = [];
  36. query = "SELECT IdUtente FROM Utenti WHERE Username=@user AND Password=@pass";
  37. request = new Request(query, function (err, rowCount) { // ESEGUE DOPO TUTTO
  38. if (err) { console.log(err); }
  39. else {
  40. if (rowCount == 0) {
  41. Risposta.push({ status: 'ko' });
  42. }
  43. reply(Risposta);
  44. }
  45. });
  46.  
  47. request.AddParameter('user', TYPES.VarChar, user);
  48. request.AddParameter('pass', TYPES.VarChar, pass);
  49.  
  50. //Cosa faccio con i dati che ottengo dalla query
  51. request.on('row', function (columns) {
  52. columns.forEach(function (column) //dalla tab del risutlato faccio passare tuitte le colonne, essendo una sola colonna so che la prima รจ l'id
  53. {
  54. Risposta.push({ status: 'ok', id: column.value })
  55. }
  56. )
  57. });
  58. //Esegue la query
  59. connection.execSql(request);
  60. }
  61. });
  62.  
  63. function signup(user, pass, reply) {
  64. var connection = new Connection(config);
  65.  
  66. connection.on('connect', function (err) {
  67. if (err) {
  68. console.log(err);
  69. }
  70. else {
  71. console.log('Connected');
  72. var Risposta = [];
  73. query = "INSERT INTO Utenti(Username, Password) VALUES (@user,@pass)";
  74. request = new Request(query, function (err, rowCount) {
  75. if (err) { console.log(err); }
  76. else {
  77. if (rowCount == 0) {
  78. Risposta.push({ status: 'ko' });
  79. }
  80. else {
  81. Risposta.push({ status: 'ok' });
  82. }
  83. reply(Risposta);
  84. }
  85. });
  86. request.AddParameter('user', TYPES.VarChar, user);
  87. request.AddParameter('pass', TYPES.VarChar, pass);
  88. connection.execSql(request);
  89. }
  90. });
  91. }
  92.  
  93. function savescore(reply, score, schema, idUt) {
  94. var connection = new Connection(config);
  95. var VecchioScore = 0;
  96. connection.on('connect', function (err) {
  97. if (err) {
  98. console.log(err);
  99. }
  100. else {
  101. console.log('Connected');
  102. var Risposta = [];
  103. queryScore = "SELECT TempodiVittoria FROM Punteggi WHERE IdUtente=@idUt";
  104. request = new Request(query, function (err, rowCount) {
  105. if (err) { console.log(err); }
  106. else {
  107. if (rowCount = 1) {
  108. if (VecchioScore > score) {
  109. query = "UPDATE Punteggi SET TempodiVittoria=@score WHERE IdUtente=@idUt)";
  110. request = new Request(query, function (err, reply) {
  111. if (err) console.log(err);
  112. else {
  113. if (rowCount == 0) {
  114. Risposta.push({ status: 'ko' });
  115. }
  116. else {
  117. Risposta.push({ status: 'ok' });
  118. }
  119. reply(Risposta);
  120. }
  121. });
  122. }
  123. else if (rowCount = 0) {
  124. query = "INSERT INTO Punteggi (IdUtente,IdSchema,TempodiVittoria) VALUES (@idUt,@schema,@score)";
  125. request = new Request(query, function (err, reply) {
  126. if (err) console.log(err);
  127. else {
  128. if (rowCount == 0) {
  129. Risposta.push({ status: 'ko' });
  130. }
  131. else {
  132. Risposta.push({ status: 'ok' });
  133. }
  134. reply(Risposta);
  135. }
  136. });
  137. }
  138. }
  139. }
  140. request.AddParameter('score', TYPES.Time, score);
  141. request.AddParameter('idUt', TYPES.Int, idUt);
  142. request.AddParameter('schema', TYPES.Int, schema);
  143. });
  144. request.on('row', function (columns) {
  145. VecchioScore = columns[0].value;
  146. });
  147. connection.execSql(request);
  148. }
  149. });
  150. }
  151.  
  152. //-------------------------------------------------------------------------------------------------------------------------
  153.  
  154.  
  155.  
  156.  
  157. server.route({
  158. method: 'POST',
  159. path: '/login',
  160. handler: function (request, reply) {
  161. login(request.payload.name, request.payload.pass, reply);
  162. }
  163. });
  164.  
  165. server.route({
  166. method: 'POST',
  167. path: '/signup',
  168. handler: function (request, reply) {
  169. signup(request.payload.name, request.payload.pass, reply);
  170. }
  171. });
  172.  
  173. server.route({
  174. method: 'POST',
  175. path: '/savescore',
  176. handler: function (request, reply) {
  177. savescore(request.payload.score, request.payload.idUt,request.payload.schema, reply);
  178. }
  179. });
  180.  
  181. /* server.route({
  182. method: 'POST',
  183. path: '/signup',
  184. handler: function(request, reply) {
  185.  
  186. }
  187.  
  188. });*/
  189.  
  190. server.start(function () {
  191. console.log('Hapi is listening to http://localhost:3000');
  192. });
  193.  
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement