Advertisement
Guest User

Untitled

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