Advertisement
Guest User

Untitled

a guest
Apr 17th, 2019
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 6.50 KB | None | 0 0
  1. require 'httparty'
  2.  
  3. ACTIVITY_URL = 'https://bidatabase.herokuapp.com/metrics/convertion/{ID}'
  4. LOST_URL = 'https://bidatabase.herokuapp.com/metrics/lost/{ID}'
  5. WON_URL = 'https://bidatabase.herokuapp.com/metrics/won/{ID}'
  6. OPEN_URL = 'https://bidatabase.herokuapp.com/metrics/open/{ID}'
  7. ACCESS_TOKEN = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoid29sb3guYmkifQ.xdops9HrflQ8Xg7U0xgzRDAdvT7vyHam4sU8cWzDmVw'
  8.  
  9. def get(url, params)
  10.   response = HTTParty.get(url.gsub('{ID}', params[:id].to_s), query: params, headers: { 'Authorization': ACCESS_TOKEN }, :debug_output => $stdout)
  11. end
  12.  
  13. def fetch_metrics(id, date_start, date_end)
  14.     puts "Requiring between dates: #{date_start}-#{date_end}\n"
  15.     time_start = DateTime.new(*date_start.split("-").map(&:to_i), 00, 00, 00, '-03:00')
  16.     time_end = DateTime.new(*date_end.split('-').map(&:to_i), 23, 59, 59, '-03:00')
  17.  
  18.     ###### CONVERTIONS - START #######
  19.     acumulado = []
  20.     id.each do |key|
  21.         activity_response = get(ACTIVITY_URL, {id: key, start: time_start, end: time_end})
  22.         # ret = {}
  23.         # activity_response.parsed_response["data"].each do |k,v|
  24.             # ret[k] = v
  25.         end
  26.         # acumulado << ret
  27.     end
  28. #
  29. #     matrix = []
  30. #     acumulado.each do |team|
  31. #         keys = team.keys
  32. #         column = []
  33. #         contador = 0
  34. #         keys.each_with_index do |stage, index|
  35. #             column << "#{team[stage]["incoming"]["outbound"]}\t#{team[stage]["incoming"]["inbound"]}"
  36. #             column << (index == 3 ? "won_time" : "#{team[stage]["outgoing"]["outbound"]}\t#{team[stage]["outgoing"]["inbound"]}")
  37. #             column << "formula#{contador}"
  38. #             contador = contador + 1
  39. #         end
  40. #         matrix << column
  41. #     end
  42. #
  43. #     formula0 = "=IF(C9*C12 = 0, 0, C12/C9)\t=IF(D9*D12 = 0, 0, D12/D9)\t=IF(E9*E12 = 0, 0, E12/E9)\t=IF(F9*F12 = 0, 0, F12/F9)\t=IF(G9*G12 = 0, 0, G12/G9)\t=IF(H9*H12 = 0, 0, H12/H9)\t=IF(I9*I12 = 0, 0, I12/I9)\t=IF(J9*J12 = 0, 0, J12/J9)\t=IF(K9*K12 = 0, 0, K12/K9)\t=IF(L9*L12 = 0, 0, L12/L9)"
  44. #     formula1 = "=IF(C12*C15 = 0, 0, C15/C12)\t=IF(D12*D15 = 0, 0, D15/D12)\t=IF(E12*E15 = 0, 0, E15/E12)\t=IF(F12*F15 = 0, 0, F15/F12)\t=IF(G12*G15 = 0, 0, G15/G12)\t=IF(H12*H15 = 0, 0, H15/H12)\t=IF(I12*I15 = 0, 0, I15/I12)\t=IF(J12*J15 = 0, 0, J15/J12)\t=IF(K12*K15 = 0, 0, K15/K12)\t=IF(L12*L15 = 0, 0, L15/L12)"
  45. #     formula2 = "=IF(C15*C18 = 0, 0, C18/C15)\t=IF(D15*D18 = 0, 0, D18/D15)\t=IF(E15*E18 = 0, 0, E18/E15)\t=IF(F15*F18 = 0, 0, F18/F15)\t=IF(G15*G18 = 0, 0, G18/G15)\t=IF(H15*H18 = 0, 0, H18/H15)\t=IF(I15*I18 = 0, 0, I18/I15)\t=IF(J15*J18 = 0, 0, J18/J15)\t=IF(K15*K18 = 0, 0, K18/K15)\t=IF(L15*L18 = 0, 0, L18/L15)"
  46. #
  47. #     ###### CONVERTIONS - END #######
  48. #
  49. #     ###### WON/LOST - START #######
  50. #     acumulado = []
  51. #     matrix1 = []
  52. #     matrix2 = []
  53. #     matrix3 = []
  54. #     matrix4 = []
  55. #     id.each do |key|
  56. #         column1 = []
  57. #         column2 = []
  58. #         column3 = []
  59. #         column4 = []
  60. #         close_response = get(WON_URL, {id: key, start: time_start, end: time_end})
  61. #         lost_response = get(LOST_URL, {id: key, start: time_start, end: time_end})
  62. #         open_response = get(OPEN_URL, {id: key})
  63. #         column1 << close_response.parsed_response["data"]["total"]["outbound"]["count"]
  64. #         column1 << close_response.parsed_response["data"]["total"]["inbound"]["count"]
  65. #         column2 << close_response.parsed_response["data"]["total"]["total"]["sum"]
  66. #         column2 << lost_response.parsed_response["data"]["total"]["total"]["sum"]
  67. #         column3 << open_response.parsed_response["data"]["total"]["total"]["sum"]
  68. #         column4 << open_response.parsed_response["data"]["total"]["total"]["avg"]
  69. #         matrix1 << column1
  70. #         matrix2 << column2
  71. #         matrix3 << column3
  72. #         matrix4 << column4
  73. #         ret = {}
  74. #         lost_response.parsed_response["data"]["breakdown"].each do |k,v|
  75. #             ret[k] = v
  76. #         end
  77. #         acumulado << ret
  78. #     end
  79. #
  80. #     closed = matrix1.join("\t")
  81. #
  82. #     matrix5 = []
  83. #     lead1 = 0
  84. #     lead2 = 0
  85. #     acumulado.each do |team|
  86. #         keys = team.keys
  87. #         column = []
  88. #         contador = 0
  89. #         keys.each_with_index do |stage, index|
  90. #             unless ['Falling in Love', 'Looking for Investment'].include? stage
  91. #                 if stage.include?("Lead")
  92. #                     lead1 += team[stage]["outbound"]["count"]
  93. #                     lead2 += team[stage]["inbound"]["count"]
  94. #                 elsif stage.include?("Proposal")
  95. #                     column << "#{lead1}\t#{lead2}"
  96. #                     column << "#{team[stage]["outbound"]["count"]}\t#{team[stage]["inbound"]["count"]}"
  97. #                     lead1 = 0
  98. #                     lead2 = 0
  99. #                 else
  100. #                     column << "#{team[stage]["outbound"]["count"]}\t#{team[stage]["inbound"]["count"]}"
  101. #                 end
  102. #             end
  103. #         end
  104. #         matrix5 << column
  105. #     end
  106. #     ###### WON/LOST - END #######
  107. #
  108. #     ###### FORMAT OUTPUT - START #######
  109. #     matrix.transpose.each do |row|
  110. #         if row.first == "\n"
  111. #             print "\n"
  112. #             next
  113. #         end
  114. #         if row[0] == "won_time"
  115. #             puts closed
  116. #         elsif row[0] == "formula0"
  117. #             puts formula0
  118. #         elsif row[0] == "formula1"
  119. #             puts formula1
  120. #         elsif row[0] == "formula2"
  121. #             puts formula2
  122. #         elsif row[0] == "formula3"
  123. #             puts "\t"
  124. #         else
  125. #             puts row.join("\t")
  126. #         end
  127. #     end
  128. #     puts "\n"
  129. #     matrix3.transpose.each do |row|
  130. #         puts row.join("\t")
  131. #     end
  132. #     matrix2.transpose.each do |row|
  133. #         puts row.join("\t")
  134. #     end
  135. #     puts "\n"
  136. #     puts "SFO\tLATAM\tCHILE\tARGENTINA\tNYC"
  137. #     matrix4.transpose.each do |row|
  138. #         puts row.join("\t")
  139. #     end
  140. #     puts "\n"
  141. #     matrix5.transpose.each do |row|
  142. #         puts row.join("\t")
  143. #     end
  144. #     ###### FORMAT OUTPUT - END #######
  145. # end
  146. #
  147. # puts "New projects\n"
  148. # id = [7, 14, 5, 4, 9]
  149. # fetch_metrics(id, '2019-01-28', '2019-02-03')
  150. # fetch_metrics(id, '2019-01-01', '2019-01-31')
  151. # fetch_metrics(id, '2019-01-01', '2019-02-03')
  152. # fetch_metrics(id, '2019-01-01', '2019-02-03')
  153. # puts "Upsellings\n"
  154. id = [8, 15, 6, 3, 10]
  155. # fetch_metrics(id, '2019-01-28', '2019-02-03')
  156. # fetch_metrics(id, '2019-01-01', '2019-01-31')
  157. # fetch_metrics(id, '2019-01-01', '2019-02-03')
  158. fetch_metrics(id, '2019-01-01', '2019-02-03')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement