Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.12 KB | None | 0 0
  1. app.get('/checkTrade/', function (req, res) {
  2. var tradeid = req.query['tradeid'];
  3. var offer = currentOffer[tradeid];
  4.  
  5. if (offer.process) return res.json({
  6. type: offer.type,
  7. what: 'error',
  8. clear: false,
  9. message: 'Please slow down.'
  10. });
  11. offer.process = true;
  12.  
  13. getTrade(tradeid, function(err, response) {
  14. if (err || !response) {
  15. res.json({
  16. type: offer.type,
  17. what: 'error',
  18. clear: false,
  19. message: 'There was an error while checking the status of the trade.'
  20. });
  21. offer.process = false;
  22. return;
  23. }
  24. if (response.trade_offer_state == 3) {
  25. logger.trace('Offer has been accepted in first step: '+ tradeid)
  26. res.json({
  27. type: offer.type,
  28. what: 'success',
  29. clear: true,
  30. message: 'Exchange went successful. Changing the balance '+(offer.type == 'withdraw' ? '-'+offer.coins : '+'+offer.coins)+' coins.',
  31. coins: (offer.type == 'withdraw' ? '-'+offer.coins : offer.coins),
  32. });
  33. if (offer.type == 'deposit') {
  34. getItems(tradeid, response.tradeid);
  35. query('UPDATE `users` SET `balance` = `balance` + '+offer.coins+' WHERE `steamid` = '+offer.steamid);
  36. logger.fatal('User: '+offer.steamid+' recived '+offer.coins+' coins for tradeid: '+tradeid);
  37. }
  38. if (offer.type == 'withdraw') {
  39. if (!response.items_to_give) {
  40. res.json({
  41. type: offer.type,
  42. what: 'error',
  43. clear: false,
  44. message: 'There was an error while checking the status of the trade.'
  45. });
  46. offer.process = false;
  47. return;
  48. }
  49. logger.fatal('User '+offer.steamid+' withdrawed items for '+offer.coins+' coins.')
  50. if (response.items_to_give) {
  51. logger.error('Items delete from store '+ tradeid)
  52. var assets = [];
  53. for (var index in response.items_to_give) {
  54. var item = response.items_to_give[index];
  55. assets.push(item.assetid)
  56. }
  57. query('DELETE FROM `inventory` WHERE `classid` IN (' + assets + ')');
  58. } else {
  59. logger.error('Error on delete items for trade '+ tradeid)
  60. }
  61. }
  62. query('UPDATE `trades` SET `status` = "done" WHERE `tradeid` = '+tradeid);
  63. delete currentOffer[tradeid];
  64. } else if (response.trade_offer_state == 2 || response.trade_offer_state == 9) {
  65. var cancel_time = parseFloat(offer.time) + 60;
  66. var current_time = parseInt(new Date().getTime() / 1000);
  67. if (cancel_time < current_time) {
  68. cancelTrade(tradeid, function(cancel) {
  69. if (cancel) {
  70. getTrade(tradeid, function(err, response2) {
  71. if (response2.trade_offer_state == 3) {
  72. logger.trace('Offer has been accepted in secoond step: '+ tradeid)
  73. res.json({
  74. type: offer.type,
  75. what: 'success',
  76. clear: true,
  77. message: 'Exchange went successful. Changing the balance '+(offer.type == 'withdraw' ? '-'+offer.coins : '+'+offer.coins)+' coins.',
  78. coins: (offer.type == 'withdraw' ? '-'+offer.coins : offer.coins),
  79. });
  80. if (offer.type == 'deposit') {
  81. getItems(tradeid, response2.tradeid);
  82. query('UPDATE `users` SET `balance` = `balance` + '+offer.coins+' WHERE `steamid` = '+offer.steamid);
  83. logger.fatal('User: '+offer.steamid+' recived '+offer.coins+' coins for tradeid: '+tradeid);
  84. }
  85. if (offer.type == 'withdraw') {
  86. if (!response.items_to_give) {
  87. res.json({
  88. type: offer.type,
  89. what: 'error',
  90. clear: false,
  91. message: 'There was an error while checking the status of the trade.'
  92. });
  93. offer.process = false;
  94. return;
  95. }
  96. logger.fatal('User '+offer.steamid+' withdrawed items for '+offer.coins+' coins.')
  97. if (response2.items_to_give) {
  98. logger.error('Items delete from store '+ tradeid)
  99. var assets = [];
  100. for (var index in response2.items_to_give) {
  101. var item = response2.items_to_give[index];
  102. assets.push(item.assetid)
  103. }
  104. query('DELETE FROM `inventory` WHERE `classid` IN (' + assets + ')');
  105. } else {
  106. logger.error('Error on delete items for trade '+ tradeid)
  107. }
  108. }
  109. query('UPDATE `trades` SET `status` = "done" WHERE `tradeid` = '+tradeid);
  110. delete currentOffer[tradeid];
  111. } else {
  112. if (offer.type == 'withdraw') {
  113. if (response.items_to_give) {
  114. logger.error('Items back to store '+ tradeid)
  115. var assets = [];
  116. for(var index in response.items_to_give) {
  117. var item = response.items_to_give[index];
  118. assets.push(item.assetid)
  119. }
  120. query('UPDATE `inventory` SET `intrade` = "0" WHERE `classid` IN (' + assets + ')');
  121. } else {
  122. logger.error('Error on intrade 0 items for trade '+ tradeid)
  123. }
  124. query('UPDATE `users` SET `balance` = `balance` + '+offer.coins+' WHERE `steamid` = '+offer.steamid);
  125. }
  126. res.json({
  127. type: offer.type,
  128. what: 'error',
  129. message: 'The trade offer has been rejected.',
  130. coins: (offer.type == 'withdraw' ? offer.coins : '-'+offer.coins),
  131. clear: true
  132. });
  133. logger.error('Offer has been declined in secoond step: '+ tradeid)
  134. query('UPDATE `trades` SET `status` = "declined" WHERE `tradeid` = '+tradeid);
  135. delete currentOffer[tradeid];
  136. }
  137. })
  138. } else {
  139. res.json({
  140. type: offer.type,
  141. what: 'error',
  142. clear: false,
  143. message: 'There was an error while checking the status of the trade.'
  144. });
  145. offer.process = false;
  146. }
  147. })
  148. } else {
  149. res.json({
  150. type: offer.type,
  151. what: 'warning',
  152. clear: false,
  153. message: 'Please accept the tradeoffer and check status again.'
  154. });
  155. offer.process = false;
  156. }
  157. } else {
  158. cancelTrade(tradeid, function(cancel) {
  159. if (cancel) {
  160. if (offer.type == 'withdraw') {
  161. if (response.items_to_give) {
  162. logger.error('Items back to store '+ tradeid)
  163. var assets = [];
  164. for(var index in response.items_to_give) {
  165. var item = response.items_to_give[index];
  166. assets.push(item.assetid)
  167. }
  168. query('UPDATE `inventory` SET `intrade` = "0" WHERE `classid` IN (' + assets + ')');
  169. } else {
  170. logger.error('Error on intrade 0 items for trade '+ tradeid)
  171. }
  172. query('UPDATE `users` SET `balance` = `balance` + '+offer.coins+' WHERE `steamid` = '+offer.steamid);
  173. }
  174. res.json({
  175. type: offer.type,
  176. what: 'error',
  177. clear: true,
  178. coins: (offer.type == 'withdraw' ? offer.coins : '-'+offer.coins),
  179. message: 'The trade offer has been rejected.',
  180. });
  181. logger.error('Offer has been declined in first step: '+ tradeid)
  182. query('UPDATE `trades` SET `status` = "declined" WHERE `tradeid` = '+tradeid);
  183. delete currentOffer[tradeid];
  184. } else {
  185. res.json({
  186. type: offer.type,
  187. what: 'error',
  188. clear: false,
  189. message: 'There was an error while checking the status of the trade.'
  190. });
  191. offer.process = false;
  192. }
  193. })
  194. }
  195. })
  196. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement