123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. var util = require('./util');
  2. var http = require('./http');
  3. function sessionExists(sdk) {
  4. return sdk.session.get()
  5. .then(function(res) {
  6. if (res.status === 'ACTIVE') {
  7. return true;
  8. }
  9. return false;
  10. })
  11. .fail(function() {
  12. return false;
  13. });
  14. }
  15. function getSession(sdk) {
  16. return http.get(sdk, '/api/v1/sessions/me')
  17. .then(function(session) {
  18. var res = util.omit(session, '_links');
  19. res.refresh = function() {
  20. return http.post(sdk, util.getLink(session, 'refresh').href);
  21. };
  22. res.user = function() {
  23. return http.get(sdk, util.getLink(session, 'user').href);
  24. };
  25. return res;
  26. })
  27. .fail(function() {
  28. // Return INACTIVE status on failure
  29. return {status: 'INACTIVE'};
  30. });
  31. }
  32. function closeSession(sdk) {
  33. return http.httpRequest(sdk, {
  34. url: sdk.options.url + '/api/v1/sessions/me',
  35. method: 'DELETE'
  36. });
  37. }
  38. function refreshSession(sdk) {
  39. return http.post(sdk, '/api/v1/sessions/me/lifecycle/refresh');
  40. }
  41. function setCookieAndRedirect(sdk, sessionToken, redirectUrl) {
  42. redirectUrl = redirectUrl || window.location.href;
  43. window.location = sdk.options.url + '/login/sessionCookieRedirect' +
  44. util.toQueryParams({
  45. checkAccountSetupComplete: true,
  46. token: sessionToken,
  47. redirectUrl: redirectUrl
  48. });
  49. }
  50. module.exports = {
  51. sessionExists: sessionExists,
  52. getSession: getSession,
  53. closeSession: closeSession,
  54. refreshSession: refreshSession,
  55. setCookieAndRedirect: setCookieAndRedirect
  56. };