x_api_scraper 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. checksums.yaml +7 -0
  2. data/lib/crystalline/enum.rbi +17 -0
  3. data/lib/crystalline/metadata_fields.rb +265 -0
  4. data/lib/crystalline/module.rb +188 -0
  5. data/lib/crystalline/types.rb +170 -0
  6. data/lib/crystalline/utils.rb +69 -0
  7. data/lib/crystalline.rb +13 -0
  8. data/lib/x_api_scraper.rb +41 -0
  9. data/lib/xapi_scraper/account.rb +194 -0
  10. data/lib/xapi_scraper/actions.rb +2166 -0
  11. data/lib/xapi_scraper/analysis.rb +230 -0
  12. data/lib/xapi_scraper/articles.rb +410 -0
  13. data/lib/xapi_scraper/client.rb +133 -0
  14. data/lib/xapi_scraper/communities.rb +1352 -0
  15. data/lib/xapi_scraper/dm.rb +990 -0
  16. data/lib/xapi_scraper/engagement.rb +792 -0
  17. data/lib/xapi_scraper/followers.rb +420 -0
  18. data/lib/xapi_scraper/following.rb +230 -0
  19. data/lib/xapi_scraper/lists.rb +1156 -0
  20. data/lib/xapi_scraper/models/callbacks.rb +12 -0
  21. data/lib/xapi_scraper/models/components/accountverifymodel.rb +82 -0
  22. data/lib/xapi_scraper/models/components/accountverifymodel.rbi +38 -0
  23. data/lib/xapi_scraper/models/components/accountverifyresponse.rb +47 -0
  24. data/lib/xapi_scraper/models/components/accountverifyresponse.rbi +26 -0
  25. data/lib/xapi_scraper/models/components/advancedsearchcursorquery.rb +51 -0
  26. data/lib/xapi_scraper/models/components/advancedsearchcursorquery.rbi +26 -0
  27. data/lib/xapi_scraper/models/components/advancedsearchcursorresponse.rb +76 -0
  28. data/lib/xapi_scraper/models/components/advancedsearchcursorresponse.rbi +38 -0
  29. data/lib/xapi_scraper/models/components/articleblock.rb +50 -0
  30. data/lib/xapi_scraper/models/components/articleblock.rbi +26 -0
  31. data/lib/xapi_scraper/models/components/articleblockrange.rb +47 -0
  32. data/lib/xapi_scraper/models/components/articleblockrange.rbi +26 -0
  33. data/lib/xapi_scraper/models/components/blockuserresponse.rb +54 -0
  34. data/lib/xapi_scraper/models/components/blockuserresponse.rbi +26 -0
  35. data/lib/xapi_scraper/models/components/bookmarkbody.rb +43 -0
  36. data/lib/xapi_scraper/models/components/bookmarkbody.rbi +20 -0
  37. data/lib/xapi_scraper/models/components/cashtagsquery.rb +192 -0
  38. data/lib/xapi_scraper/models/components/cashtagsquery.rbi +98 -0
  39. data/lib/xapi_scraper/models/components/cashtagsquery_language.rb +76 -0
  40. data/lib/xapi_scraper/models/components/cashtagsquery_language.rbi +9 -0
  41. data/lib/xapi_scraper/models/components/cashtagsquery_sortby.rb +18 -0
  42. data/lib/xapi_scraper/models/components/cashtagsquery_sortby.rbi +9 -0
  43. data/lib/xapi_scraper/models/components/communitymodel.rb +164 -0
  44. data/lib/xapi_scraper/models/components/communitymodel.rbi +92 -0
  45. data/lib/xapi_scraper/models/components/communitytweetsresponse.rb +47 -0
  46. data/lib/xapi_scraper/models/components/communitytweetsresponse.rbi +26 -0
  47. data/lib/xapi_scraper/models/components/context.rb +25 -0
  48. data/lib/xapi_scraper/models/components/context.rbi +9 -0
  49. data/lib/xapi_scraper/models/components/conversationv3model.rb +57 -0
  50. data/lib/xapi_scraper/models/components/conversationv3model.rbi +32 -0
  51. data/lib/xapi_scraper/models/components/createthreaddata.rb +35 -0
  52. data/lib/xapi_scraper/models/components/createthreaddata.rbi +14 -0
  53. data/lib/xapi_scraper/models/components/createthreadquery.rb +51 -0
  54. data/lib/xapi_scraper/models/components/createthreadquery.rbi +26 -0
  55. data/lib/xapi_scraper/models/components/createthreadresponse.rb +47 -0
  56. data/lib/xapi_scraper/models/components/createthreadresponse.rbi +26 -0
  57. data/lib/xapi_scraper/models/components/createthreadtweetitem.rb +31 -0
  58. data/lib/xapi_scraper/models/components/createthreadtweetitem.rbi +14 -0
  59. data/lib/xapi_scraper/models/components/deletebookmarkquery.rb +35 -0
  60. data/lib/xapi_scraper/models/components/deletebookmarkquery.rbi +14 -0
  61. data/lib/xapi_scraper/models/components/deleteretweetquery.rb +35 -0
  62. data/lib/xapi_scraper/models/components/deleteretweetquery.rbi +14 -0
  63. data/lib/xapi_scraper/models/components/deletetweetquery.rb +51 -0
  64. data/lib/xapi_scraper/models/components/deletetweetquery.rbi +26 -0
  65. data/lib/xapi_scraper/models/components/deletetweetresponse.rb +51 -0
  66. data/lib/xapi_scraper/models/components/deletetweetresponse.rbi +26 -0
  67. data/lib/xapi_scraper/models/components/dmhistoryv3data.rb +54 -0
  68. data/lib/xapi_scraper/models/components/dmhistoryv3data.rbi +26 -0
  69. data/lib/xapi_scraper/models/components/dmstatusmodelv2.rb +122 -0
  70. data/lib/xapi_scraper/models/components/dmstatusmodelv2.rbi +62 -0
  71. data/lib/xapi_scraper/models/components/dmstatusresponsev2.rb +47 -0
  72. data/lib/xapi_scraper/models/components/dmstatusresponsev2.rbi +26 -0
  73. data/lib/xapi_scraper/models/components/followersfollowingv3query.rb +51 -0
  74. data/lib/xapi_scraper/models/components/followersfollowingv3query.rbi +26 -0
  75. data/lib/xapi_scraper/models/components/followuserquery.rb +43 -0
  76. data/lib/xapi_scraper/models/components/followuserquery.rbi +20 -0
  77. data/lib/xapi_scraper/models/components/getalltweetsrepliescursorquery.rb +43 -0
  78. data/lib/xapi_scraper/models/components/getalltweetsrepliescursorquery.rbi +20 -0
  79. data/lib/xapi_scraper/models/components/getalltweetsrepliescursorresponse.rb +76 -0
  80. data/lib/xapi_scraper/models/components/getalltweetsrepliescursorresponse.rbi +38 -0
  81. data/lib/xapi_scraper/models/components/getcommunitymemberscursorquery.rb +43 -0
  82. data/lib/xapi_scraper/models/components/getcommunitymemberscursorquery.rbi +20 -0
  83. data/lib/xapi_scraper/models/components/getcommunitymemberscursorresponse.rb +72 -0
  84. data/lib/xapi_scraper/models/components/getcommunitymemberscursorresponse.rbi +38 -0
  85. data/lib/xapi_scraper/models/components/getcommunityresponse.rb +47 -0
  86. data/lib/xapi_scraper/models/components/getcommunityresponse.rbi +26 -0
  87. data/lib/xapi_scraper/models/components/getcommunitytweetscursorquery.rb +60 -0
  88. data/lib/xapi_scraper/models/components/getcommunitytweetscursorquery.rbi +26 -0
  89. data/lib/xapi_scraper/models/components/getcommunitytweetscursorresponse.rb +72 -0
  90. data/lib/xapi_scraper/models/components/getcommunitytweetscursorresponse.rbi +38 -0
  91. data/lib/xapi_scraper/models/components/getconversationsv3query.rb +62 -0
  92. data/lib/xapi_scraper/models/components/getconversationsv3query.rbi +32 -0
  93. data/lib/xapi_scraper/models/components/getconversationsv3response.rb +47 -0
  94. data/lib/xapi_scraper/models/components/getconversationsv3response.rbi +26 -0
  95. data/lib/xapi_scraper/models/components/getdmhistoryv3query.rb +94 -0
  96. data/lib/xapi_scraper/models/components/getdmhistoryv3query.rbi +50 -0
  97. data/lib/xapi_scraper/models/components/getdmhistoryv3response.rb +47 -0
  98. data/lib/xapi_scraper/models/components/getdmhistoryv3response.rbi +26 -0
  99. data/lib/xapi_scraper/models/components/getdmmediav3data.rb +77 -0
  100. data/lib/xapi_scraper/models/components/getdmmediav3data.rbi +44 -0
  101. data/lib/xapi_scraper/models/components/getdmmediav3query.rb +112 -0
  102. data/lib/xapi_scraper/models/components/getdmmediav3query.rbi +56 -0
  103. data/lib/xapi_scraper/models/components/getdmmediav3response.rb +47 -0
  104. data/lib/xapi_scraper/models/components/getdmmediav3response.rbi +26 -0
  105. data/lib/xapi_scraper/models/components/getlistmemberscursorquery.rb +43 -0
  106. data/lib/xapi_scraper/models/components/getlistmemberscursorquery.rbi +20 -0
  107. data/lib/xapi_scraper/models/components/getlistmemberscursorresponse.rb +72 -0
  108. data/lib/xapi_scraper/models/components/getlistmemberscursorresponse.rbi +38 -0
  109. data/lib/xapi_scraper/models/components/getlisttweetscursorquery.rb +43 -0
  110. data/lib/xapi_scraper/models/components/getlisttweetscursorquery.rbi +20 -0
  111. data/lib/xapi_scraper/models/components/getlisttweetscursorresponse.rb +72 -0
  112. data/lib/xapi_scraper/models/components/getlisttweetscursorresponse.rbi +38 -0
  113. data/lib/xapi_scraper/models/components/getquotescursorquery.rb +63 -0
  114. data/lib/xapi_scraper/models/components/getquotescursorquery.rbi +26 -0
  115. data/lib/xapi_scraper/models/components/getquotescursorquery_sort_by.rb +18 -0
  116. data/lib/xapi_scraper/models/components/getquotescursorquery_sort_by.rbi +9 -0
  117. data/lib/xapi_scraper/models/components/getquotescursorresponse.rb +72 -0
  118. data/lib/xapi_scraper/models/components/getquotescursorresponse.rbi +38 -0
  119. data/lib/xapi_scraper/models/components/getquotesquery.rb +59 -0
  120. data/lib/xapi_scraper/models/components/getquotesquery.rbi +26 -0
  121. data/lib/xapi_scraper/models/components/getquotesquery_sort_by.rb +18 -0
  122. data/lib/xapi_scraper/models/components/getquotesquery_sort_by.rbi +9 -0
  123. data/lib/xapi_scraper/models/components/getquotesresponse.rb +47 -0
  124. data/lib/xapi_scraper/models/components/getquotesresponse.rbi +26 -0
  125. data/lib/xapi_scraper/models/components/getrepliespagequery.rb +51 -0
  126. data/lib/xapi_scraper/models/components/getrepliespagequery.rbi +20 -0
  127. data/lib/xapi_scraper/models/components/getrepliespagequery_sort_by.rb +19 -0
  128. data/lib/xapi_scraper/models/components/getrepliespagequery_sort_by.rbi +9 -0
  129. data/lib/xapi_scraper/models/components/getrepliespageresponse.rb +85 -0
  130. data/lib/xapi_scraper/models/components/getrepliespageresponse.rbi +44 -0
  131. data/lib/xapi_scraper/models/components/getretweeterscursorquery.rb +43 -0
  132. data/lib/xapi_scraper/models/components/getretweeterscursorquery.rbi +20 -0
  133. data/lib/xapi_scraper/models/components/getretweeterscursorresponse.rb +72 -0
  134. data/lib/xapi_scraper/models/components/getretweeterscursorresponse.rbi +38 -0
  135. data/lib/xapi_scraper/models/components/gettweetsbyidresponse.rb +58 -0
  136. data/lib/xapi_scraper/models/components/gettweetsbyidresponse.rbi +26 -0
  137. data/lib/xapi_scraper/models/components/hashtagsquery.rb +192 -0
  138. data/lib/xapi_scraper/models/components/hashtagsquery.rbi +98 -0
  139. data/lib/xapi_scraper/models/components/hashtagsquery_language.rb +76 -0
  140. data/lib/xapi_scraper/models/components/hashtagsquery_language.rbi +9 -0
  141. data/lib/xapi_scraper/models/components/hashtagsquery_sortby.rb +18 -0
  142. data/lib/xapi_scraper/models/components/hashtagsquery_sortby.rbi +9 -0
  143. data/lib/xapi_scraper/models/components/likeactionbody.rb +43 -0
  144. data/lib/xapi_scraper/models/components/likeactionbody.rbi +20 -0
  145. data/lib/xapi_scraper/models/components/listmembersresponse.rb +47 -0
  146. data/lib/xapi_scraper/models/components/listmembersresponse.rbi +26 -0
  147. data/lib/xapi_scraper/models/components/listmodel.rb +77 -0
  148. data/lib/xapi_scraper/models/components/listmodel.rbi +44 -0
  149. data/lib/xapi_scraper/models/components/listsubscribersresponse.rb +47 -0
  150. data/lib/xapi_scraper/models/components/listsubscribersresponse.rbi +26 -0
  151. data/lib/xapi_scraper/models/components/listtweetsresponse.rb +47 -0
  152. data/lib/xapi_scraper/models/components/listtweetsresponse.rbi +26 -0
  153. data/lib/xapi_scraper/models/components/loc.rb +25 -0
  154. data/lib/xapi_scraper/models/components/loc.rbi +9 -0
  155. data/lib/xapi_scraper/models/components/mediamodel.rb +194 -0
  156. data/lib/xapi_scraper/models/components/mediamodel.rbi +110 -0
  157. data/lib/xapi_scraper/models/components/messagemodel.rb +100 -0
  158. data/lib/xapi_scraper/models/components/messagemodel.rbi +56 -0
  159. data/lib/xapi_scraper/models/components/posttweetdata.rb +51 -0
  160. data/lib/xapi_scraper/models/components/posttweetdata.rbi +26 -0
  161. data/lib/xapi_scraper/models/components/posttweetquery.rb +122 -0
  162. data/lib/xapi_scraper/models/components/posttweetquery.rbi +62 -0
  163. data/lib/xapi_scraper/models/components/posttweetresponse.rb +58 -0
  164. data/lib/xapi_scraper/models/components/posttweetresponse.rbi +26 -0
  165. data/lib/xapi_scraper/models/components/posttweetwithoutcookiequery.rb +102 -0
  166. data/lib/xapi_scraper/models/components/posttweetwithoutcookiequery.rbi +50 -0
  167. data/lib/xapi_scraper/models/components/quotetweetquery.rb +112 -0
  168. data/lib/xapi_scraper/models/components/quotetweetquery.rbi +56 -0
  169. data/lib/xapi_scraper/models/components/retweetactionbody.rb +43 -0
  170. data/lib/xapi_scraper/models/components/retweetactionbody.rbi +20 -0
  171. data/lib/xapi_scraper/models/components/searchcommunityquery.rb +43 -0
  172. data/lib/xapi_scraper/models/components/searchcommunityquery.rbi +20 -0
  173. data/lib/xapi_scraper/models/components/searchcommunityresponse.rb +47 -0
  174. data/lib/xapi_scraper/models/components/searchcommunityresponse.rbi +26 -0
  175. data/lib/xapi_scraper/models/components/searchcommunitytweetsquery.rb +51 -0
  176. data/lib/xapi_scraper/models/components/searchcommunitytweetsquery.rbi +26 -0
  177. data/lib/xapi_scraper/models/components/searchlistquery.rb +43 -0
  178. data/lib/xapi_scraper/models/components/searchlistquery.rbi +20 -0
  179. data/lib/xapi_scraper/models/components/searchlistresponse.rb +47 -0
  180. data/lib/xapi_scraper/models/components/searchlistresponse.rbi +26 -0
  181. data/lib/xapi_scraper/models/components/searchresponse.rb +54 -0
  182. data/lib/xapi_scraper/models/components/searchresponse.rbi +26 -0
  183. data/lib/xapi_scraper/models/components/searchuserresponse.rb +47 -0
  184. data/lib/xapi_scraper/models/components/searchuserresponse.rbi +26 -0
  185. data/lib/xapi_scraper/models/components/security.rb +34 -0
  186. data/lib/xapi_scraper/models/components/security.rbi +14 -0
  187. data/lib/xapi_scraper/models/components/senddmresponse.rb +47 -0
  188. data/lib/xapi_scraper/models/components/senddmresponse.rbi +26 -0
  189. data/lib/xapi_scraper/models/components/senddmv3query.rb +90 -0
  190. data/lib/xapi_scraper/models/components/senddmv3query.rbi +50 -0
  191. data/lib/xapi_scraper/models/components/sentimentanalysismodel.rb +43 -0
  192. data/lib/xapi_scraper/models/components/sentimentanalysismodel.rbi +20 -0
  193. data/lib/xapi_scraper/models/components/sentimentanalysisquery.rb +31 -0
  194. data/lib/xapi_scraper/models/components/sentimentanalysisquery.rbi +14 -0
  195. data/lib/xapi_scraper/models/components/sentimentanalysisresponse.rb +47 -0
  196. data/lib/xapi_scraper/models/components/sentimentanalysisresponse.rbi +26 -0
  197. data/lib/xapi_scraper/models/components/standardresponse.rb +47 -0
  198. data/lib/xapi_scraper/models/components/standardresponse.rbi +26 -0
  199. data/lib/xapi_scraper/models/components/streammodel.rb +51 -0
  200. data/lib/xapi_scraper/models/components/streammodel.rbi +26 -0
  201. data/lib/xapi_scraper/models/components/tweet_type.rb +19 -0
  202. data/lib/xapi_scraper/models/components/tweet_type.rbi +9 -0
  203. data/lib/xapi_scraper/models/components/tweetactionresponse.rb +51 -0
  204. data/lib/xapi_scraper/models/components/tweetactionresponse.rbi +26 -0
  205. data/lib/xapi_scraper/models/components/tweetmodel.rb +518 -0
  206. data/lib/xapi_scraper/models/components/tweetmodel.rbi +302 -0
  207. data/lib/xapi_scraper/models/components/tweetthreadbyidbody.rb +53 -0
  208. data/lib/xapi_scraper/models/components/tweetthreadbyidbody.rbi +26 -0
  209. data/lib/xapi_scraper/models/components/twitteraccountbasedstandardresponse.rb +58 -0
  210. data/lib/xapi_scraper/models/components/twitteraccountbasedstandardresponse.rbi +26 -0
  211. data/lib/xapi_scraper/models/components/twitteruseraboutresponse.rb +208 -0
  212. data/lib/xapi_scraper/models/components/twitteruseraboutresponse.rbi +116 -0
  213. data/lib/xapi_scraper/models/components/twitteruseraboutstandardresponse.rb +58 -0
  214. data/lib/xapi_scraper/models/components/twitteruseraboutstandardresponse.rbi +26 -0
  215. data/lib/xapi_scraper/models/components/unfavoritetweetquery.rb +35 -0
  216. data/lib/xapi_scraper/models/components/unfavoritetweetquery.rbi +14 -0
  217. data/lib/xapi_scraper/models/components/unfollowuserquery.rb +43 -0
  218. data/lib/xapi_scraper/models/components/unfollowuserquery.rbi +20 -0
  219. data/lib/xapi_scraper/models/components/unfollowuserresponse.rb +47 -0
  220. data/lib/xapi_scraper/models/components/unfollowuserresponse.rbi +26 -0
  221. data/lib/xapi_scraper/models/components/urlmodel.rb +47 -0
  222. data/lib/xapi_scraper/models/components/urlmodel.rbi +26 -0
  223. data/lib/xapi_scraper/models/components/userinfo.rb +348 -0
  224. data/lib/xapi_scraper/models/components/userinfo.rbi +200 -0
  225. data/lib/xapi_scraper/models/components/usermodel.rb +344 -0
  226. data/lib/xapi_scraper/models/components/usermodel.rbi +200 -0
  227. data/lib/xapi_scraper/models/components/usersdetailsresponse.rb +47 -0
  228. data/lib/xapi_scraper/models/components/usersdetailsresponse.rbi +26 -0
  229. data/lib/xapi_scraper/models/components/usertimelinefillquery.rb +35 -0
  230. data/lib/xapi_scraper/models/components/usertimelinefillquery.rbi +14 -0
  231. data/lib/xapi_scraper/models/components/usertimelinepagequery.rb +43 -0
  232. data/lib/xapi_scraper/models/components/usertimelinepagequery.rbi +20 -0
  233. data/lib/xapi_scraper/models/components/usertimelinepageresponse.rb +112 -0
  234. data/lib/xapi_scraper/models/components/usertimelinepageresponse.rbi +56 -0
  235. data/lib/xapi_scraper/models/components/usertimelineresponse.rb +76 -0
  236. data/lib/xapi_scraper/models/components/usertimelineresponse.rbi +38 -0
  237. data/lib/xapi_scraper/models/components/usertweetitem.rb +225 -0
  238. data/lib/xapi_scraper/models/components/usertweetitem.rbi +122 -0
  239. data/lib/xapi_scraper/models/components/validationerror.rb +67 -0
  240. data/lib/xapi_scraper/models/components/validationerror.rbi +38 -0
  241. data/lib/xapi_scraper/models/components/verifiedfollowersdata.rb +58 -0
  242. data/lib/xapi_scraper/models/components/verifiedfollowersdata.rbi +26 -0
  243. data/lib/xapi_scraper/models/components/verifiedfollowersresponse.rb +47 -0
  244. data/lib/xapi_scraper/models/components/verifiedfollowersresponse.rbi +26 -0
  245. data/lib/xapi_scraper/models/components/xarticlemodel.rb +305 -0
  246. data/lib/xapi_scraper/models/components/xarticlemodel.rbi +170 -0
  247. data/lib/xapi_scraper/models/components/xarticleresponse.rb +47 -0
  248. data/lib/xapi_scraper/models/components/xarticleresponse.rbi +26 -0
  249. data/lib/xapi_scraper/models/components.rb +128 -0
  250. data/lib/xapi_scraper/models/errors/apierror.rb +39 -0
  251. data/lib/xapi_scraper/models/errors/apierror.rbi +27 -0
  252. data/lib/xapi_scraper/models/errors/httpvalidationerror.rb +48 -0
  253. data/lib/xapi_scraper/models/errors/httpvalidationerror.rbi +20 -0
  254. data/lib/xapi_scraper/models/errors.rb +13 -0
  255. data/lib/xapi_scraper/models/operations/accountgetbalance_response.rb +51 -0
  256. data/lib/xapi_scraper/models/operations/accountgetbalance_response.rbi +32 -0
  257. data/lib/xapi_scraper/models/operations/analysissentiment_response.rb +51 -0
  258. data/lib/xapi_scraper/models/operations/analysissentiment_response.rbi +32 -0
  259. data/lib/xapi_scraper/models/operations/articlesfetch_response.rb +51 -0
  260. data/lib/xapi_scraper/models/operations/articlesfetch_response.rbi +32 -0
  261. data/lib/xapi_scraper/models/operations/articlesmarkdown_request.rb +31 -0
  262. data/lib/xapi_scraper/models/operations/articlesmarkdown_request.rbi +14 -0
  263. data/lib/xapi_scraper/models/operations/articlesmarkdown_response.rb +51 -0
  264. data/lib/xapi_scraper/models/operations/articlesmarkdown_response.rbi +32 -0
  265. data/lib/xapi_scraper/models/operations/communitiesget_request.rb +34 -0
  266. data/lib/xapi_scraper/models/operations/communitiesget_request.rbi +14 -0
  267. data/lib/xapi_scraper/models/operations/communitiesget_response.rb +51 -0
  268. data/lib/xapi_scraper/models/operations/communitiesget_response.rbi +32 -0
  269. data/lib/xapi_scraper/models/operations/communitiesmembers_request.rb +42 -0
  270. data/lib/xapi_scraper/models/operations/communitiesmembers_request.rbi +20 -0
  271. data/lib/xapi_scraper/models/operations/communitiesmembers_response.rb +51 -0
  272. data/lib/xapi_scraper/models/operations/communitiesmembers_response.rbi +32 -0
  273. data/lib/xapi_scraper/models/operations/communitiesmemberspage_response.rb +54 -0
  274. data/lib/xapi_scraper/models/operations/communitiesmemberspage_response.rbi +32 -0
  275. data/lib/xapi_scraper/models/operations/communitiessearch_response.rb +51 -0
  276. data/lib/xapi_scraper/models/operations/communitiessearch_response.rbi +32 -0
  277. data/lib/xapi_scraper/models/operations/communitiessearchtweets_response.rb +51 -0
  278. data/lib/xapi_scraper/models/operations/communitiessearchtweets_response.rbi +32 -0
  279. data/lib/xapi_scraper/models/operations/communitiestweets_request.rb +50 -0
  280. data/lib/xapi_scraper/models/operations/communitiestweets_request.rbi +26 -0
  281. data/lib/xapi_scraper/models/operations/communitiestweets_response.rb +51 -0
  282. data/lib/xapi_scraper/models/operations/communitiestweets_response.rbi +32 -0
  283. data/lib/xapi_scraper/models/operations/communitiestweetspage_response.rb +54 -0
  284. data/lib/xapi_scraper/models/operations/communitiestweetspage_response.rbi +32 -0
  285. data/lib/xapi_scraper/models/operations/country.rb +79 -0
  286. data/lib/xapi_scraper/models/operations/country.rbi +9 -0
  287. data/lib/xapi_scraper/models/operations/dmconversations_response.rb +51 -0
  288. data/lib/xapi_scraper/models/operations/dmconversations_response.rbi +32 -0
  289. data/lib/xapi_scraper/models/operations/dmhistory_response.rb +51 -0
  290. data/lib/xapi_scraper/models/operations/dmhistory_response.rbi +32 -0
  291. data/lib/xapi_scraper/models/operations/dmmedia_response.rb +51 -0
  292. data/lib/xapi_scraper/models/operations/dmmedia_response.rbi +32 -0
  293. data/lib/xapi_scraper/models/operations/dmsend_response.rb +51 -0
  294. data/lib/xapi_scraper/models/operations/dmsend_response.rbi +32 -0
  295. data/lib/xapi_scraper/models/operations/dmstatus_response.rb +51 -0
  296. data/lib/xapi_scraper/models/operations/dmstatus_response.rbi +32 -0
  297. data/lib/xapi_scraper/models/operations/listsmembers_request.rb +38 -0
  298. data/lib/xapi_scraper/models/operations/listsmembers_request.rbi +20 -0
  299. data/lib/xapi_scraper/models/operations/listsmembers_response.rb +51 -0
  300. data/lib/xapi_scraper/models/operations/listsmembers_response.rbi +32 -0
  301. data/lib/xapi_scraper/models/operations/listsmemberspage_response.rb +54 -0
  302. data/lib/xapi_scraper/models/operations/listsmemberspage_response.rbi +32 -0
  303. data/lib/xapi_scraper/models/operations/listssearch_response.rb +51 -0
  304. data/lib/xapi_scraper/models/operations/listssearch_response.rbi +32 -0
  305. data/lib/xapi_scraper/models/operations/listssubscribers_request.rb +38 -0
  306. data/lib/xapi_scraper/models/operations/listssubscribers_request.rbi +20 -0
  307. data/lib/xapi_scraper/models/operations/listssubscribers_response.rb +51 -0
  308. data/lib/xapi_scraper/models/operations/listssubscribers_response.rbi +32 -0
  309. data/lib/xapi_scraper/models/operations/liststweets_request.rb +38 -0
  310. data/lib/xapi_scraper/models/operations/liststweets_request.rbi +20 -0
  311. data/lib/xapi_scraper/models/operations/liststweets_response.rb +51 -0
  312. data/lib/xapi_scraper/models/operations/liststweets_response.rbi +32 -0
  313. data/lib/xapi_scraper/models/operations/liststweetspage_response.rb +54 -0
  314. data/lib/xapi_scraper/models/operations/liststweetspage_response.rbi +32 -0
  315. data/lib/xapi_scraper/models/operations/searchadvanced_response.rb +54 -0
  316. data/lib/xapi_scraper/models/operations/searchadvanced_response.rbi +32 -0
  317. data/lib/xapi_scraper/models/operations/searchcashtags_response.rb +51 -0
  318. data/lib/xapi_scraper/models/operations/searchcashtags_response.rbi +32 -0
  319. data/lib/xapi_scraper/models/operations/searchhashtags_response.rb +51 -0
  320. data/lib/xapi_scraper/models/operations/searchhashtags_response.rbi +32 -0
  321. data/lib/xapi_scraper/models/operations/timelinestweetsandreplies_request.rb +35 -0
  322. data/lib/xapi_scraper/models/operations/timelinestweetsandreplies_request.rbi +20 -0
  323. data/lib/xapi_scraper/models/operations/timelinestweetsandreplies_response.rb +51 -0
  324. data/lib/xapi_scraper/models/operations/timelinestweetsandreplies_response.rbi +32 -0
  325. data/lib/xapi_scraper/models/operations/timelinestweetsandrepliespage_response.rb +54 -0
  326. data/lib/xapi_scraper/models/operations/timelinestweetsandrepliespage_response.rbi +32 -0
  327. data/lib/xapi_scraper/models/operations/timelinesuser_request.rb +35 -0
  328. data/lib/xapi_scraper/models/operations/timelinesuser_request.rbi +20 -0
  329. data/lib/xapi_scraper/models/operations/timelinesuser_response.rb +51 -0
  330. data/lib/xapi_scraper/models/operations/timelinesuser_response.rbi +32 -0
  331. data/lib/xapi_scraper/models/operations/timelinesuserpage_request.rb +35 -0
  332. data/lib/xapi_scraper/models/operations/timelinesuserpage_request.rbi +20 -0
  333. data/lib/xapi_scraper/models/operations/timelinesuserpage_response.rb +51 -0
  334. data/lib/xapi_scraper/models/operations/timelinesuserpage_response.rbi +32 -0
  335. data/lib/xapi_scraper/models/operations/trendingbycountry_request.rb +35 -0
  336. data/lib/xapi_scraper/models/operations/trendingbycountry_request.rbi +14 -0
  337. data/lib/xapi_scraper/models/operations/trendingbycountry_response.rb +51 -0
  338. data/lib/xapi_scraper/models/operations/trendingbycountry_response.rbi +32 -0
  339. data/lib/xapi_scraper/models/operations/trendingcontents_request.rb +35 -0
  340. data/lib/xapi_scraper/models/operations/trendingcontents_request.rbi +20 -0
  341. data/lib/xapi_scraper/models/operations/trendingcontents_response.rb +51 -0
  342. data/lib/xapi_scraper/models/operations/trendingcontents_response.rbi +32 -0
  343. data/lib/xapi_scraper/models/operations/trendingcountries_response.rb +51 -0
  344. data/lib/xapi_scraper/models/operations/trendingcountries_response.rbi +32 -0
  345. data/lib/xapi_scraper/models/operations/trendingtopics_response.rb +51 -0
  346. data/lib/xapi_scraper/models/operations/trendingtopics_response.rbi +32 -0
  347. data/lib/xapi_scraper/models/operations/trendingtweets_request.rb +63 -0
  348. data/lib/xapi_scraper/models/operations/trendingtweets_request.rbi +32 -0
  349. data/lib/xapi_scraper/models/operations/trendingtweets_response.rb +51 -0
  350. data/lib/xapi_scraper/models/operations/trendingtweets_response.rbi +32 -0
  351. data/lib/xapi_scraper/models/operations/tweet_type.rb +19 -0
  352. data/lib/xapi_scraper/models/operations/tweet_type.rbi +9 -0
  353. data/lib/xapi_scraper/models/operations/tweetsactionsbookmark_request.rb +35 -0
  354. data/lib/xapi_scraper/models/operations/tweetsactionsbookmark_request.rbi +20 -0
  355. data/lib/xapi_scraper/models/operations/tweetsactionsbookmark_response.rb +51 -0
  356. data/lib/xapi_scraper/models/operations/tweetsactionsbookmark_response.rbi +32 -0
  357. data/lib/xapi_scraper/models/operations/tweetsactionscreate_response.rb +51 -0
  358. data/lib/xapi_scraper/models/operations/tweetsactionscreate_response.rbi +32 -0
  359. data/lib/xapi_scraper/models/operations/tweetsactionscreatethread_response.rb +51 -0
  360. data/lib/xapi_scraper/models/operations/tweetsactionscreatethread_response.rbi +32 -0
  361. data/lib/xapi_scraper/models/operations/tweetsactionscreatewithoutcookie_response.rb +51 -0
  362. data/lib/xapi_scraper/models/operations/tweetsactionscreatewithoutcookie_response.rbi +32 -0
  363. data/lib/xapi_scraper/models/operations/tweetsactionsdeletebatch_response.rb +51 -0
  364. data/lib/xapi_scraper/models/operations/tweetsactionsdeletebatch_response.rbi +32 -0
  365. data/lib/xapi_scraper/models/operations/tweetsactionslike_request.rb +35 -0
  366. data/lib/xapi_scraper/models/operations/tweetsactionslike_request.rbi +20 -0
  367. data/lib/xapi_scraper/models/operations/tweetsactionslike_response.rb +51 -0
  368. data/lib/xapi_scraper/models/operations/tweetsactionslike_response.rbi +32 -0
  369. data/lib/xapi_scraper/models/operations/tweetsactionsquote_response.rb +51 -0
  370. data/lib/xapi_scraper/models/operations/tweetsactionsquote_response.rbi +32 -0
  371. data/lib/xapi_scraper/models/operations/tweetsactionsretweet_request.rb +35 -0
  372. data/lib/xapi_scraper/models/operations/tweetsactionsretweet_request.rbi +20 -0
  373. data/lib/xapi_scraper/models/operations/tweetsactionsretweet_response.rb +51 -0
  374. data/lib/xapi_scraper/models/operations/tweetsactionsretweet_response.rbi +32 -0
  375. data/lib/xapi_scraper/models/operations/tweetsactionsunbookmark_request.rb +35 -0
  376. data/lib/xapi_scraper/models/operations/tweetsactionsunbookmark_request.rbi +20 -0
  377. data/lib/xapi_scraper/models/operations/tweetsactionsunbookmark_response.rb +51 -0
  378. data/lib/xapi_scraper/models/operations/tweetsactionsunbookmark_response.rbi +32 -0
  379. data/lib/xapi_scraper/models/operations/tweetsactionsunlike_request.rb +35 -0
  380. data/lib/xapi_scraper/models/operations/tweetsactionsunlike_request.rbi +20 -0
  381. data/lib/xapi_scraper/models/operations/tweetsactionsunlike_response.rb +51 -0
  382. data/lib/xapi_scraper/models/operations/tweetsactionsunlike_response.rbi +32 -0
  383. data/lib/xapi_scraper/models/operations/tweetsactionsunretweet_request.rb +35 -0
  384. data/lib/xapi_scraper/models/operations/tweetsactionsunretweet_request.rbi +20 -0
  385. data/lib/xapi_scraper/models/operations/tweetsactionsunretweet_response.rb +51 -0
  386. data/lib/xapi_scraper/models/operations/tweetsactionsunretweet_response.rbi +32 -0
  387. data/lib/xapi_scraper/models/operations/tweetsdetail_response.rb +51 -0
  388. data/lib/xapi_scraper/models/operations/tweetsdetail_response.rbi +32 -0
  389. data/lib/xapi_scraper/models/operations/tweetsengagementquotes_response.rb +51 -0
  390. data/lib/xapi_scraper/models/operations/tweetsengagementquotes_response.rbi +32 -0
  391. data/lib/xapi_scraper/models/operations/tweetsengagementquotespage_response.rb +51 -0
  392. data/lib/xapi_scraper/models/operations/tweetsengagementquotespage_response.rbi +32 -0
  393. data/lib/xapi_scraper/models/operations/tweetsengagementretweeters_request.rb +39 -0
  394. data/lib/xapi_scraper/models/operations/tweetsengagementretweeters_request.rbi +20 -0
  395. data/lib/xapi_scraper/models/operations/tweetsengagementretweeters_response.rb +51 -0
  396. data/lib/xapi_scraper/models/operations/tweetsengagementretweeters_response.rbi +32 -0
  397. data/lib/xapi_scraper/models/operations/tweetsengagementretweeterspage_response.rb +51 -0
  398. data/lib/xapi_scraper/models/operations/tweetsengagementretweeterspage_response.rbi +32 -0
  399. data/lib/xapi_scraper/models/operations/tweetslookup_response.rb +51 -0
  400. data/lib/xapi_scraper/models/operations/tweetslookup_response.rbi +32 -0
  401. data/lib/xapi_scraper/models/operations/tweetsrepliespage_request.rb +35 -0
  402. data/lib/xapi_scraper/models/operations/tweetsrepliespage_request.rbi +20 -0
  403. data/lib/xapi_scraper/models/operations/tweetsrepliespage_response.rb +51 -0
  404. data/lib/xapi_scraper/models/operations/tweetsrepliespage_response.rbi +32 -0
  405. data/lib/xapi_scraper/models/operations/tweetssimilar_request.rb +30 -0
  406. data/lib/xapi_scraper/models/operations/tweetssimilar_request.rbi +14 -0
  407. data/lib/xapi_scraper/models/operations/tweetssimilar_response.rb +51 -0
  408. data/lib/xapi_scraper/models/operations/tweetssimilar_response.rbi +32 -0
  409. data/lib/xapi_scraper/models/operations/tweetsthread_response.rb +51 -0
  410. data/lib/xapi_scraper/models/operations/tweetsthread_response.rbi +32 -0
  411. data/lib/xapi_scraper/models/operations/usersfollow_response.rb +51 -0
  412. data/lib/xapi_scraper/models/operations/usersfollow_response.rbi +32 -0
  413. data/lib/xapi_scraper/models/operations/usersfollowerslist_response.rb +51 -0
  414. data/lib/xapi_scraper/models/operations/usersfollowerslist_response.rbi +32 -0
  415. data/lib/xapi_scraper/models/operations/usersfollowersverified_response.rb +51 -0
  416. data/lib/xapi_scraper/models/operations/usersfollowersverified_response.rbi +32 -0
  417. data/lib/xapi_scraper/models/operations/usersfollowinglist_response.rb +51 -0
  418. data/lib/xapi_scraper/models/operations/usersfollowinglist_response.rbi +32 -0
  419. data/lib/xapi_scraper/models/operations/usersgetabout_request.rb +31 -0
  420. data/lib/xapi_scraper/models/operations/usersgetabout_request.rbi +14 -0
  421. data/lib/xapi_scraper/models/operations/usersgetabout_response.rb +54 -0
  422. data/lib/xapi_scraper/models/operations/usersgetabout_response.rbi +32 -0
  423. data/lib/xapi_scraper/models/operations/usersgetaccountbased_response.rb +54 -0
  424. data/lib/xapi_scraper/models/operations/usersgetaccountbased_response.rbi +32 -0
  425. data/lib/xapi_scraper/models/operations/usersgetbyids_response.rb +51 -0
  426. data/lib/xapi_scraper/models/operations/usersgetbyids_response.rbi +32 -0
  427. data/lib/xapi_scraper/models/operations/usersgetbyusernames_response.rb +51 -0
  428. data/lib/xapi_scraper/models/operations/usersgetbyusernames_response.rbi +32 -0
  429. data/lib/xapi_scraper/models/operations/usersgetstatuses_response.rb +51 -0
  430. data/lib/xapi_scraper/models/operations/usersgetstatuses_response.rbi +32 -0
  431. data/lib/xapi_scraper/models/operations/userssearch_request.rb +39 -0
  432. data/lib/xapi_scraper/models/operations/userssearch_request.rbi +20 -0
  433. data/lib/xapi_scraper/models/operations/userssearch_response.rb +51 -0
  434. data/lib/xapi_scraper/models/operations/userssearch_response.rbi +32 -0
  435. data/lib/xapi_scraper/models/operations/usersunfollow_response.rb +51 -0
  436. data/lib/xapi_scraper/models/operations/usersunfollow_response.rbi +32 -0
  437. data/lib/xapi_scraper/models/operations/usersverifyaccount_response.rb +51 -0
  438. data/lib/xapi_scraper/models/operations/usersverifyaccount_response.rbi +32 -0
  439. data/lib/xapi_scraper/models/operations.rb +127 -0
  440. data/lib/xapi_scraper/replies.rb +235 -0
  441. data/lib/xapi_scraper/sdk_hooks/hooks.rb +99 -0
  442. data/lib/xapi_scraper/sdk_hooks/registration.rb +34 -0
  443. data/lib/xapi_scraper/sdk_hooks/types.rb +180 -0
  444. data/lib/xapi_scraper/sdkconfiguration.rb +107 -0
  445. data/lib/xapi_scraper/sdkconfiguration.rbi +83 -0
  446. data/lib/xapi_scraper/search.rb +610 -0
  447. data/lib/xapi_scraper/timelines.rb +805 -0
  448. data/lib/xapi_scraper/trending.rb +888 -0
  449. data/lib/xapi_scraper/tweets.rb +801 -0
  450. data/lib/xapi_scraper/users.rb +1748 -0
  451. data/lib/xapi_scraper/utils/forms.rb +232 -0
  452. data/lib/xapi_scraper/utils/headers.rb +82 -0
  453. data/lib/xapi_scraper/utils/query_params.rb +167 -0
  454. data/lib/xapi_scraper/utils/request_bodies.rb +79 -0
  455. data/lib/xapi_scraper/utils/retries.rb +139 -0
  456. data/lib/xapi_scraper/utils/security.rb +158 -0
  457. data/lib/xapi_scraper/utils/url.rb +124 -0
  458. data/lib/xapi_scraper/utils/utils.rb +241 -0
  459. metadata +720 -0
@@ -0,0 +1,888 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+ require "faraday"
7
+ require "faraday/multipart"
8
+ require "faraday/retry"
9
+ require "sorbet-runtime"
10
+
11
+ require_relative "sdk_hooks/hooks"
12
+ require_relative "utils/retries"
13
+
14
+ module XapiScraper
15
+ extend T::Sig
16
+
17
+ class Trending
18
+ extend T::Sig
19
+
20
+ sig { params(sdk_config: SDKConfiguration).void }
21
+ def initialize(sdk_config)
22
+ @sdk_configuration = sdk_config
23
+ end
24
+
25
+ sig { params(base_url: String, url_variables: T.nilable(T::Hash[Symbol, T.any(String, T::Enum)])).returns(String) }
26
+ def get_url(base_url:, url_variables: nil)
27
+ sd_base_url, sd_options = @sdk_configuration.get_server_details
28
+
29
+ if base_url.nil?
30
+ base_url = sd_base_url
31
+ end
32
+
33
+ if url_variables.nil?
34
+ url_variables = sd_options
35
+ end
36
+
37
+ return Utils.template_url(base_url, url_variables)
38
+ end
39
+
40
+ sig {
41
+ params(
42
+ retries: T.nilable(Utils::RetryConfig),
43
+ timeout_ms: T.nilable(Integer),
44
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
45
+ )
46
+ .returns(Models::Operations::TrendingCountriesResponse)
47
+ }
48
+ def countries(retries: nil, timeout_ms: nil, http_headers: nil)
49
+ # countries - List Global Trend Countries
50
+ # Get the supported country and global options that can be used to filter trending tweets.
51
+ url, params = @sdk_configuration.get_server_details
52
+ base_url = Utils.template_url(url, params)
53
+ url = "#{base_url}/twitter/global-trending/countries"
54
+ headers = {}
55
+ headers = T.cast(headers, T::Hash[String, String])
56
+ headers["Accept"] = "application/json"
57
+ headers["user-agent"] = @sdk_configuration.user_agent
58
+ retries ||= @sdk_configuration.retry_config
59
+ retries ||= Utils::RetryConfig.new(
60
+ backoff: Utils::BackoffStrategy.new(
61
+ exponent: 1.5,
62
+ initial_interval: 500,
63
+ max_elapsed_time: 3_600_000,
64
+ max_interval: 60_000
65
+ ),
66
+ retry_connection_errors: true,
67
+ strategy: "backoff"
68
+ )
69
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
70
+ retry_options[:retry_statuses] = [408, 409, 429, 500, 501, 502, 503, 504, 505]
71
+
72
+ security = @sdk_configuration.security_source&.call
73
+
74
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
75
+ timeout ||= @sdk_configuration.timeout
76
+
77
+ connection = @sdk_configuration.client.dup
78
+ connection.use(Utils::RetryMiddleware, retry_options)
79
+
80
+ hook_ctx = SDKHooks::HookContext.new(
81
+ config: @sdk_configuration,
82
+ base_url: base_url,
83
+ oauth2_scopes: nil,
84
+ operation_id: "trendingCountries",
85
+ security_source: @sdk_configuration.security_source
86
+ )
87
+
88
+ error = T.let(nil, T.nilable(StandardError))
89
+ http_response = T.let(nil, T.nilable(Faraday::Response))
90
+
91
+ begin
92
+ http_response = T.must(connection).get(url) do |req|
93
+ req.headers.merge!(headers)
94
+ req.options.timeout = timeout unless timeout.nil?
95
+ Utils.configure_request_security(req, security)
96
+ http_headers&.each do |key, value|
97
+ req.headers[key.to_s] = value
98
+ end
99
+
100
+ @sdk_configuration.hooks.before_request(
101
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
102
+ hook_ctx: hook_ctx
103
+ ),
104
+ request: req
105
+ )
106
+ end
107
+
108
+ rescue StandardError => e
109
+ error = e
110
+ ensure
111
+ if http_response.nil? || Utils.error_status?(http_response.status)
112
+ http_response = @sdk_configuration.hooks.after_error(
113
+ error: error,
114
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
115
+ hook_ctx: hook_ctx
116
+ ),
117
+ response: http_response
118
+ )
119
+ else
120
+ http_response = @sdk_configuration.hooks.after_success(
121
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
122
+ hook_ctx: hook_ctx
123
+ ),
124
+ response: http_response
125
+ )
126
+ end
127
+
128
+ if http_response.nil?
129
+ raise error if !error.nil?
130
+ raise "no response"
131
+ end
132
+ end
133
+
134
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
135
+ if Utils.match_status_code(http_response.status, ["200"])
136
+ if Utils.match_content_type(content_type, "application/json")
137
+ http_response = @sdk_configuration.hooks.after_success(
138
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
139
+ hook_ctx: hook_ctx
140
+ ),
141
+ response: http_response
142
+ )
143
+ response_data = http_response.env.response_body
144
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::StandardResponse)
145
+ response = Models::Operations::TrendingCountriesResponse.new(
146
+ status_code: http_response.status,
147
+ content_type: content_type,
148
+ raw_response: http_response,
149
+ standard_response: T.unsafe(obj)
150
+ )
151
+
152
+ return response
153
+ else
154
+ raise(
155
+ ::XapiScraper::Models::Errors::APIError.new(
156
+ status_code: http_response.status,
157
+ body: http_response.env.response_body,
158
+ raw_response: http_response
159
+ ),
160
+ "Unknown content type received"
161
+ )
162
+ end
163
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
164
+ raise(
165
+ ::XapiScraper::Models::Errors::APIError.new(
166
+ status_code: http_response.status,
167
+ body: http_response.env.response_body,
168
+ raw_response: http_response
169
+ ),
170
+ "API error occurred"
171
+ )
172
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
173
+ raise(
174
+ ::XapiScraper::Models::Errors::APIError.new(
175
+ status_code: http_response.status,
176
+ body: http_response.env.response_body,
177
+ raw_response: http_response
178
+ ),
179
+ "API error occurred"
180
+ )
181
+ else
182
+ raise(
183
+ ::XapiScraper::Models::Errors::APIError.new(
184
+ status_code: http_response.status,
185
+ body: http_response.env.response_body,
186
+ raw_response: http_response
187
+ ),
188
+ "Unknown status code received"
189
+ )
190
+
191
+ end
192
+ end
193
+
194
+ sig {
195
+ params(
196
+ retries: T.nilable(Utils::RetryConfig),
197
+ timeout_ms: T.nilable(Integer),
198
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
199
+ )
200
+ .returns(Models::Operations::TrendingTopicsResponse)
201
+ }
202
+ def topics(retries: nil, timeout_ms: nil, http_headers: nil)
203
+ # topics - List Global Trend Topics
204
+ # Get the topic categories available for filtering global trending tweets.
205
+ url, params = @sdk_configuration.get_server_details
206
+ base_url = Utils.template_url(url, params)
207
+ url = "#{base_url}/twitter/global-trending/topics"
208
+ headers = {}
209
+ headers = T.cast(headers, T::Hash[String, String])
210
+ headers["Accept"] = "application/json"
211
+ headers["user-agent"] = @sdk_configuration.user_agent
212
+ retries ||= @sdk_configuration.retry_config
213
+ retries ||= Utils::RetryConfig.new(
214
+ backoff: Utils::BackoffStrategy.new(
215
+ exponent: 1.5,
216
+ initial_interval: 500,
217
+ max_elapsed_time: 3_600_000,
218
+ max_interval: 60_000
219
+ ),
220
+ retry_connection_errors: true,
221
+ strategy: "backoff"
222
+ )
223
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
224
+ retry_options[:retry_statuses] = [408, 409, 429, 500, 501, 502, 503, 504, 505]
225
+
226
+ security = @sdk_configuration.security_source&.call
227
+
228
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
229
+ timeout ||= @sdk_configuration.timeout
230
+
231
+ connection = @sdk_configuration.client.dup
232
+ connection.use(Utils::RetryMiddleware, retry_options)
233
+
234
+ hook_ctx = SDKHooks::HookContext.new(
235
+ config: @sdk_configuration,
236
+ base_url: base_url,
237
+ oauth2_scopes: nil,
238
+ operation_id: "trendingTopics",
239
+ security_source: @sdk_configuration.security_source
240
+ )
241
+
242
+ error = T.let(nil, T.nilable(StandardError))
243
+ http_response = T.let(nil, T.nilable(Faraday::Response))
244
+
245
+ begin
246
+ http_response = T.must(connection).get(url) do |req|
247
+ req.headers.merge!(headers)
248
+ req.options.timeout = timeout unless timeout.nil?
249
+ Utils.configure_request_security(req, security)
250
+ http_headers&.each do |key, value|
251
+ req.headers[key.to_s] = value
252
+ end
253
+
254
+ @sdk_configuration.hooks.before_request(
255
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
256
+ hook_ctx: hook_ctx
257
+ ),
258
+ request: req
259
+ )
260
+ end
261
+
262
+ rescue StandardError => e
263
+ error = e
264
+ ensure
265
+ if http_response.nil? || Utils.error_status?(http_response.status)
266
+ http_response = @sdk_configuration.hooks.after_error(
267
+ error: error,
268
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
269
+ hook_ctx: hook_ctx
270
+ ),
271
+ response: http_response
272
+ )
273
+ else
274
+ http_response = @sdk_configuration.hooks.after_success(
275
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
276
+ hook_ctx: hook_ctx
277
+ ),
278
+ response: http_response
279
+ )
280
+ end
281
+
282
+ if http_response.nil?
283
+ raise error if !error.nil?
284
+ raise "no response"
285
+ end
286
+ end
287
+
288
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
289
+ if Utils.match_status_code(http_response.status, ["200"])
290
+ if Utils.match_content_type(content_type, "application/json")
291
+ http_response = @sdk_configuration.hooks.after_success(
292
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
293
+ hook_ctx: hook_ctx
294
+ ),
295
+ response: http_response
296
+ )
297
+ response_data = http_response.env.response_body
298
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::StandardResponse)
299
+ response = Models::Operations::TrendingTopicsResponse.new(
300
+ status_code: http_response.status,
301
+ content_type: content_type,
302
+ raw_response: http_response,
303
+ standard_response: T.unsafe(obj)
304
+ )
305
+
306
+ return response
307
+ else
308
+ raise(
309
+ ::XapiScraper::Models::Errors::APIError.new(
310
+ status_code: http_response.status,
311
+ body: http_response.env.response_body,
312
+ raw_response: http_response
313
+ ),
314
+ "Unknown content type received"
315
+ )
316
+ end
317
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
318
+ raise(
319
+ ::XapiScraper::Models::Errors::APIError.new(
320
+ status_code: http_response.status,
321
+ body: http_response.env.response_body,
322
+ raw_response: http_response
323
+ ),
324
+ "API error occurred"
325
+ )
326
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
327
+ raise(
328
+ ::XapiScraper::Models::Errors::APIError.new(
329
+ status_code: http_response.status,
330
+ body: http_response.env.response_body,
331
+ raw_response: http_response
332
+ ),
333
+ "API error occurred"
334
+ )
335
+ else
336
+ raise(
337
+ ::XapiScraper::Models::Errors::APIError.new(
338
+ status_code: http_response.status,
339
+ body: http_response.env.response_body,
340
+ raw_response: http_response
341
+ ),
342
+ "Unknown status code received"
343
+ )
344
+
345
+ end
346
+ end
347
+
348
+ sig {
349
+ params(
350
+ request: Models::Operations::TrendingContentsRequest,
351
+ retries: T.nilable(Utils::RetryConfig),
352
+ timeout_ms: T.nilable(Integer),
353
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
354
+ )
355
+ .returns(Models::Operations::TrendingContentsResponse)
356
+ }
357
+ def contents(request:, retries: nil, timeout_ms: nil, http_headers: nil)
358
+ # contents - List Global Trend Content Tags
359
+ # Get content tags for a selected country and topic so tweets can be filtered more precisely.
360
+ url, params = @sdk_configuration.get_server_details
361
+ base_url = Utils.template_url(url, params)
362
+ url = "#{base_url}/twitter/global-trending/contents"
363
+ headers = {}
364
+ headers = T.cast(headers, T::Hash[String, String])
365
+ query_params = Utils.get_query_params(Models::Operations::TrendingContentsRequest, request, nil)
366
+ headers["Accept"] = "application/json"
367
+ headers["user-agent"] = @sdk_configuration.user_agent
368
+ retries ||= @sdk_configuration.retry_config
369
+ retries ||= Utils::RetryConfig.new(
370
+ backoff: Utils::BackoffStrategy.new(
371
+ exponent: 1.5,
372
+ initial_interval: 500,
373
+ max_elapsed_time: 3_600_000,
374
+ max_interval: 60_000
375
+ ),
376
+ retry_connection_errors: true,
377
+ strategy: "backoff"
378
+ )
379
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
380
+ retry_options[:retry_statuses] = [408, 409, 429, 500, 501, 502, 503, 504, 505]
381
+
382
+ security = @sdk_configuration.security_source&.call
383
+
384
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
385
+ timeout ||= @sdk_configuration.timeout
386
+
387
+ connection = @sdk_configuration.client.dup
388
+ connection.use(Utils::RetryMiddleware, retry_options)
389
+
390
+ hook_ctx = SDKHooks::HookContext.new(
391
+ config: @sdk_configuration,
392
+ base_url: base_url,
393
+ oauth2_scopes: nil,
394
+ operation_id: "trendingContents",
395
+ security_source: @sdk_configuration.security_source
396
+ )
397
+
398
+ error = T.let(nil, T.nilable(StandardError))
399
+ http_response = T.let(nil, T.nilable(Faraday::Response))
400
+
401
+ begin
402
+ http_response = T.must(connection).get(url) do |req|
403
+ req.headers.merge!(headers)
404
+ req.options.timeout = timeout unless timeout.nil?
405
+ req.params = query_params
406
+ Utils.configure_request_security(req, security)
407
+ http_headers&.each do |key, value|
408
+ req.headers[key.to_s] = value
409
+ end
410
+
411
+ @sdk_configuration.hooks.before_request(
412
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
413
+ hook_ctx: hook_ctx
414
+ ),
415
+ request: req
416
+ )
417
+ end
418
+
419
+ rescue StandardError => e
420
+ error = e
421
+ ensure
422
+ if http_response.nil? || Utils.error_status?(http_response.status)
423
+ http_response = @sdk_configuration.hooks.after_error(
424
+ error: error,
425
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
426
+ hook_ctx: hook_ctx
427
+ ),
428
+ response: http_response
429
+ )
430
+ else
431
+ http_response = @sdk_configuration.hooks.after_success(
432
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
433
+ hook_ctx: hook_ctx
434
+ ),
435
+ response: http_response
436
+ )
437
+ end
438
+
439
+ if http_response.nil?
440
+ raise error if !error.nil?
441
+ raise "no response"
442
+ end
443
+ end
444
+
445
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
446
+ if Utils.match_status_code(http_response.status, ["200"])
447
+ if Utils.match_content_type(content_type, "application/json")
448
+ http_response = @sdk_configuration.hooks.after_success(
449
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
450
+ hook_ctx: hook_ctx
451
+ ),
452
+ response: http_response
453
+ )
454
+ response_data = http_response.env.response_body
455
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::StandardResponse)
456
+ response = Models::Operations::TrendingContentsResponse.new(
457
+ status_code: http_response.status,
458
+ content_type: content_type,
459
+ raw_response: http_response,
460
+ standard_response: T.unsafe(obj)
461
+ )
462
+
463
+ return response
464
+ else
465
+ raise(
466
+ ::XapiScraper::Models::Errors::APIError.new(
467
+ status_code: http_response.status,
468
+ body: http_response.env.response_body,
469
+ raw_response: http_response
470
+ ),
471
+ "Unknown content type received"
472
+ )
473
+ end
474
+ elsif Utils.match_status_code(http_response.status, ["422"])
475
+ if Utils.match_content_type(content_type, "application/json")
476
+ http_response = @sdk_configuration.hooks.after_success(
477
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
478
+ hook_ctx: hook_ctx
479
+ ),
480
+ response: http_response
481
+ )
482
+ response_data = http_response.env.response_body
483
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::HTTPValidationError)
484
+ obj.raw_response = http_response
485
+ raise obj
486
+ else
487
+ raise(
488
+ ::XapiScraper::Models::Errors::APIError.new(
489
+ status_code: http_response.status,
490
+ body: http_response.env.response_body,
491
+ raw_response: http_response
492
+ ),
493
+ "Unknown content type received"
494
+ )
495
+ end
496
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
497
+ raise(
498
+ ::XapiScraper::Models::Errors::APIError.new(
499
+ status_code: http_response.status,
500
+ body: http_response.env.response_body,
501
+ raw_response: http_response
502
+ ),
503
+ "API error occurred"
504
+ )
505
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
506
+ raise(
507
+ ::XapiScraper::Models::Errors::APIError.new(
508
+ status_code: http_response.status,
509
+ body: http_response.env.response_body,
510
+ raw_response: http_response
511
+ ),
512
+ "API error occurred"
513
+ )
514
+ else
515
+ raise(
516
+ ::XapiScraper::Models::Errors::APIError.new(
517
+ status_code: http_response.status,
518
+ body: http_response.env.response_body,
519
+ raw_response: http_response
520
+ ),
521
+ "Unknown status code received"
522
+ )
523
+
524
+ end
525
+ end
526
+
527
+ sig {
528
+ params(
529
+ request: Models::Operations::TrendingTweetsRequest,
530
+ retries: T.nilable(Utils::RetryConfig),
531
+ timeout_ms: T.nilable(Integer),
532
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
533
+ )
534
+ .returns(Models::Operations::TrendingTweetsResponse)
535
+ }
536
+ def tweets(request:, retries: nil, timeout_ms: nil, http_headers: nil)
537
+ # tweets - Get Global Trending Tweets
538
+ # Get trending tweets for a country, with optional topic and content tag filters.
539
+ url, params = @sdk_configuration.get_server_details
540
+ base_url = Utils.template_url(url, params)
541
+ url = "#{base_url}/twitter/global-trending/tweets"
542
+ headers = {}
543
+ headers = T.cast(headers, T::Hash[String, String])
544
+ query_params = Utils.get_query_params(Models::Operations::TrendingTweetsRequest, request, nil)
545
+ headers["Accept"] = "application/json"
546
+ headers["user-agent"] = @sdk_configuration.user_agent
547
+ retries ||= @sdk_configuration.retry_config
548
+ retries ||= Utils::RetryConfig.new(
549
+ backoff: Utils::BackoffStrategy.new(
550
+ exponent: 1.5,
551
+ initial_interval: 500,
552
+ max_elapsed_time: 3_600_000,
553
+ max_interval: 60_000
554
+ ),
555
+ retry_connection_errors: true,
556
+ strategy: "backoff"
557
+ )
558
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
559
+ retry_options[:retry_statuses] = [408, 409, 429, 500, 501, 502, 503, 504, 505]
560
+
561
+ security = @sdk_configuration.security_source&.call
562
+
563
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
564
+ timeout ||= @sdk_configuration.timeout
565
+
566
+ connection = @sdk_configuration.client.dup
567
+ connection.use(Utils::RetryMiddleware, retry_options)
568
+
569
+ hook_ctx = SDKHooks::HookContext.new(
570
+ config: @sdk_configuration,
571
+ base_url: base_url,
572
+ oauth2_scopes: nil,
573
+ operation_id: "trendingTweets",
574
+ security_source: @sdk_configuration.security_source
575
+ )
576
+
577
+ error = T.let(nil, T.nilable(StandardError))
578
+ http_response = T.let(nil, T.nilable(Faraday::Response))
579
+
580
+ begin
581
+ http_response = T.must(connection).get(url) do |req|
582
+ req.headers.merge!(headers)
583
+ req.options.timeout = timeout unless timeout.nil?
584
+ req.params = query_params
585
+ Utils.configure_request_security(req, security)
586
+ http_headers&.each do |key, value|
587
+ req.headers[key.to_s] = value
588
+ end
589
+
590
+ @sdk_configuration.hooks.before_request(
591
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
592
+ hook_ctx: hook_ctx
593
+ ),
594
+ request: req
595
+ )
596
+ end
597
+
598
+ rescue StandardError => e
599
+ error = e
600
+ ensure
601
+ if http_response.nil? || Utils.error_status?(http_response.status)
602
+ http_response = @sdk_configuration.hooks.after_error(
603
+ error: error,
604
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
605
+ hook_ctx: hook_ctx
606
+ ),
607
+ response: http_response
608
+ )
609
+ else
610
+ http_response = @sdk_configuration.hooks.after_success(
611
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
612
+ hook_ctx: hook_ctx
613
+ ),
614
+ response: http_response
615
+ )
616
+ end
617
+
618
+ if http_response.nil?
619
+ raise error if !error.nil?
620
+ raise "no response"
621
+ end
622
+ end
623
+
624
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
625
+ if Utils.match_status_code(http_response.status, ["200"])
626
+ if Utils.match_content_type(content_type, "application/json")
627
+ http_response = @sdk_configuration.hooks.after_success(
628
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
629
+ hook_ctx: hook_ctx
630
+ ),
631
+ response: http_response
632
+ )
633
+ response_data = http_response.env.response_body
634
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::SearchResponse)
635
+ response = Models::Operations::TrendingTweetsResponse.new(
636
+ status_code: http_response.status,
637
+ content_type: content_type,
638
+ raw_response: http_response,
639
+ search_response: T.unsafe(obj)
640
+ )
641
+
642
+ return response
643
+ else
644
+ raise(
645
+ ::XapiScraper::Models::Errors::APIError.new(
646
+ status_code: http_response.status,
647
+ body: http_response.env.response_body,
648
+ raw_response: http_response
649
+ ),
650
+ "Unknown content type received"
651
+ )
652
+ end
653
+ elsif Utils.match_status_code(http_response.status, ["422"])
654
+ if Utils.match_content_type(content_type, "application/json")
655
+ http_response = @sdk_configuration.hooks.after_success(
656
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
657
+ hook_ctx: hook_ctx
658
+ ),
659
+ response: http_response
660
+ )
661
+ response_data = http_response.env.response_body
662
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::HTTPValidationError)
663
+ obj.raw_response = http_response
664
+ raise obj
665
+ else
666
+ raise(
667
+ ::XapiScraper::Models::Errors::APIError.new(
668
+ status_code: http_response.status,
669
+ body: http_response.env.response_body,
670
+ raw_response: http_response
671
+ ),
672
+ "Unknown content type received"
673
+ )
674
+ end
675
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
676
+ raise(
677
+ ::XapiScraper::Models::Errors::APIError.new(
678
+ status_code: http_response.status,
679
+ body: http_response.env.response_body,
680
+ raw_response: http_response
681
+ ),
682
+ "API error occurred"
683
+ )
684
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
685
+ raise(
686
+ ::XapiScraper::Models::Errors::APIError.new(
687
+ status_code: http_response.status,
688
+ body: http_response.env.response_body,
689
+ raw_response: http_response
690
+ ),
691
+ "API error occurred"
692
+ )
693
+ else
694
+ raise(
695
+ ::XapiScraper::Models::Errors::APIError.new(
696
+ status_code: http_response.status,
697
+ body: http_response.env.response_body,
698
+ raw_response: http_response
699
+ ),
700
+ "Unknown status code received"
701
+ )
702
+
703
+ end
704
+ end
705
+
706
+ sig {
707
+ params(
708
+ request: Models::Operations::TrendingByCountryRequest,
709
+ retries: T.nilable(Utils::RetryConfig),
710
+ timeout_ms: T.nilable(Integer),
711
+ http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])
712
+ )
713
+ .returns(Models::Operations::TrendingByCountryResponse)
714
+ }
715
+ def by_country(request:, retries: nil, timeout_ms: nil, http_headers: nil)
716
+ # by_country - Get Trending Topics
717
+ # Get X Explore trending topics for a given country. Use 'worldwide' for account-default trends or a country slug such as 'united-states'.
718
+ url, params = @sdk_configuration.get_server_details
719
+ base_url = Utils.template_url(url, params)
720
+ url = Utils.generate_url(
721
+ Models::Operations::TrendingByCountryRequest,
722
+ base_url,
723
+ "/twitter/{country}/trending",
724
+ request
725
+ )
726
+ headers = {}
727
+ headers = T.cast(headers, T::Hash[String, String])
728
+ headers["Accept"] = "application/json"
729
+ headers["user-agent"] = @sdk_configuration.user_agent
730
+ retries ||= @sdk_configuration.retry_config
731
+ retries ||= Utils::RetryConfig.new(
732
+ backoff: Utils::BackoffStrategy.new(
733
+ exponent: 1.5,
734
+ initial_interval: 500,
735
+ max_elapsed_time: 3_600_000,
736
+ max_interval: 60_000
737
+ ),
738
+ retry_connection_errors: true,
739
+ strategy: "backoff"
740
+ )
741
+ retry_options = retries.to_faraday_retry_options(initial_time: Time.now)
742
+ retry_options[:retry_statuses] = [408, 409, 429, 500, 501, 502, 503, 504, 505]
743
+
744
+ security = @sdk_configuration.security_source&.call
745
+
746
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
747
+ timeout ||= @sdk_configuration.timeout
748
+
749
+ connection = @sdk_configuration.client.dup
750
+ connection.use(Utils::RetryMiddleware, retry_options)
751
+
752
+ hook_ctx = SDKHooks::HookContext.new(
753
+ config: @sdk_configuration,
754
+ base_url: base_url,
755
+ oauth2_scopes: nil,
756
+ operation_id: "trendingByCountry",
757
+ security_source: @sdk_configuration.security_source
758
+ )
759
+
760
+ error = T.let(nil, T.nilable(StandardError))
761
+ http_response = T.let(nil, T.nilable(Faraday::Response))
762
+
763
+ begin
764
+ http_response = T.must(connection).get(url) do |req|
765
+ req.headers.merge!(headers)
766
+ req.options.timeout = timeout unless timeout.nil?
767
+ Utils.configure_request_security(req, security)
768
+ http_headers&.each do |key, value|
769
+ req.headers[key.to_s] = value
770
+ end
771
+
772
+ @sdk_configuration.hooks.before_request(
773
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
774
+ hook_ctx: hook_ctx
775
+ ),
776
+ request: req
777
+ )
778
+ end
779
+
780
+ rescue StandardError => e
781
+ error = e
782
+ ensure
783
+ if http_response.nil? || Utils.error_status?(http_response.status)
784
+ http_response = @sdk_configuration.hooks.after_error(
785
+ error: error,
786
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
787
+ hook_ctx: hook_ctx
788
+ ),
789
+ response: http_response
790
+ )
791
+ else
792
+ http_response = @sdk_configuration.hooks.after_success(
793
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
794
+ hook_ctx: hook_ctx
795
+ ),
796
+ response: http_response
797
+ )
798
+ end
799
+
800
+ if http_response.nil?
801
+ raise error if !error.nil?
802
+ raise "no response"
803
+ end
804
+ end
805
+
806
+ content_type = http_response.headers.fetch("Content-Type", "application/octet-stream")
807
+ if Utils.match_status_code(http_response.status, ["200"])
808
+ if Utils.match_content_type(content_type, "application/json")
809
+ http_response = @sdk_configuration.hooks.after_success(
810
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
811
+ hook_ctx: hook_ctx
812
+ ),
813
+ response: http_response
814
+ )
815
+ response_data = http_response.env.response_body
816
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Components::StandardResponse)
817
+ response = Models::Operations::TrendingByCountryResponse.new(
818
+ status_code: http_response.status,
819
+ content_type: content_type,
820
+ raw_response: http_response,
821
+ standard_response: T.unsafe(obj)
822
+ )
823
+
824
+ return response
825
+ else
826
+ raise(
827
+ ::XapiScraper::Models::Errors::APIError.new(
828
+ status_code: http_response.status,
829
+ body: http_response.env.response_body,
830
+ raw_response: http_response
831
+ ),
832
+ "Unknown content type received"
833
+ )
834
+ end
835
+ elsif Utils.match_status_code(http_response.status, ["422"])
836
+ if Utils.match_content_type(content_type, "application/json")
837
+ http_response = @sdk_configuration.hooks.after_success(
838
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
839
+ hook_ctx: hook_ctx
840
+ ),
841
+ response: http_response
842
+ )
843
+ response_data = http_response.env.response_body
844
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::HTTPValidationError)
845
+ obj.raw_response = http_response
846
+ raise obj
847
+ else
848
+ raise(
849
+ ::XapiScraper::Models::Errors::APIError.new(
850
+ status_code: http_response.status,
851
+ body: http_response.env.response_body,
852
+ raw_response: http_response
853
+ ),
854
+ "Unknown content type received"
855
+ )
856
+ end
857
+ elsif Utils.match_status_code(http_response.status, ["4XX"])
858
+ raise(
859
+ ::XapiScraper::Models::Errors::APIError.new(
860
+ status_code: http_response.status,
861
+ body: http_response.env.response_body,
862
+ raw_response: http_response
863
+ ),
864
+ "API error occurred"
865
+ )
866
+ elsif Utils.match_status_code(http_response.status, ["5XX"])
867
+ raise(
868
+ ::XapiScraper::Models::Errors::APIError.new(
869
+ status_code: http_response.status,
870
+ body: http_response.env.response_body,
871
+ raw_response: http_response
872
+ ),
873
+ "API error occurred"
874
+ )
875
+ else
876
+ raise(
877
+ ::XapiScraper::Models::Errors::APIError.new(
878
+ status_code: http_response.status,
879
+ body: http_response.env.response_body,
880
+ raw_response: http_response
881
+ ),
882
+ "Unknown status code received"
883
+ )
884
+
885
+ end
886
+ end
887
+ end
888
+ end