Guest User

Untitled

a guest
Jun 20th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. class IntegrationService
  2. def initialize(integration)
  3. @integration = integration
  4. end
  5.  
  6. def token_expired?
  7. Time.current > @integration.expires_at
  8. end
  9.  
  10. def refresh_token!
  11. tokens = oauth_klass.refresh_token(@integration.refresh_token)
  12. @integration.update_attributes(tokens)
  13. end
  14.  
  15. def deauthorize!
  16. oauth_klass.deauthorize(@integration.access_token)
  17. @integration.destroy!
  18. end
  19.  
  20. def get_as_json(endpoint, params = {})
  21. JSON.parse(get_raw(endpoint, params).body)
  22. end
  23.  
  24. def post_as_json(endpoint, payload)
  25. JSON.parse(post_raw(endpoint, payload).body)
  26. end
  27.  
  28. def patch_as_json(endpoint, payload)
  29. JSON.parse(patch_raw(endpoint, payload).body)
  30. end
  31.  
  32. def get_raw(endpoint, params = {})
  33. @integration.refresh_token! if token_expired?
  34. oauth_klass.authed_get(@integration.access_token, endpoint, params)
  35. end
  36.  
  37. def post_raw(endpoint, payload)
  38. @integration.refresh_token! if token_expired?
  39. oauth_klass.authed_post(@integration.access_token, endpoint, payload)
  40. end
  41.  
  42. def patch_raw(endpoint, payload)
  43. @integration.refresh_token! if token_expired?
  44. oauth_klass.authed_patch(@integration.access_token, endpoint, payload)
  45. end
  46.  
  47. protected
  48.  
  49. def oauth_klass; end
  50.  
  51. end
Add Comment
Please, Sign In to add comment