api.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. 'use strict';
  2. const A = Object.assign;
  3. angular.module('api.cms.ufmg', ['ngResource'])
  4. .constant('BASE_URL', 'http://150.164.180.61:9999')
  5. .service('cms', ['$resource', '$q', 'BASE_URL', function ($resource, $q, BASE_URL) {
  6. const cms = this;
  7. A(cms, {
  8. user: {},
  9. session: {},
  10. setSession: function (session) {
  11. cms.session = session;
  12. return cms.init();
  13. },
  14. Logout: () => {
  15. return $q((res, rej) => {
  16. setTimeout(() => {
  17. window.localStorage.removeItem('access_roken')
  18. cms.session = {};
  19. res()
  20. })
  21. })
  22. },
  23. Authenticated: function () {
  24. return $q((res, rej) => {
  25. setTimeout(() => {
  26. const session = window.localStorage.getItem('access_roken')
  27. if (session) {
  28. cms.setSession(JSON.parse(session)).then(user => res(user))
  29. } else {
  30. rej()
  31. }
  32. })
  33. })
  34. },
  35. Authenticate: function (input) {
  36. return $q((res, rej) => {
  37. return cms.auth.save(input).$promise.then(data => {
  38. this.setSession({
  39. access_token: data.access_token,
  40. expires_in: data.expires_in,
  41. refresh_token: data.refresh_token,
  42. scope: data.scope,
  43. token_type: data.token_type
  44. })
  45. window.localStorage.setItem('access_roken', JSON.stringify(cms.session))
  46. res(cms.session)
  47. }, rej)
  48. })
  49. },
  50. auth: $resource(`${BASE_URL}/authenticate`, {}, {}),
  51. init: function () {
  52. let base = { headers: { 'Authorization': 'Bearer ' + cms.session.access_token } }
  53. A(this, {
  54. account: $resource(`${BASE_URL}/account`, {}, {
  55. get: A(base, {
  56. method: "GET",
  57. // params: {},
  58. })
  59. }),
  60. news: $resource(`${BASE_URL}/news/:id`, { id: '@id' }, {
  61. query: A(base, {
  62. method: "GET",
  63. params: {},
  64. }),
  65. get: A(base, {
  66. method: "GET",
  67. params: {},
  68. })
  69. })
  70. });
  71. return $q((res, rej) => {
  72. cms.account.get().$promise.then(user => { cms.user = user; res(user) }, rej);
  73. })
  74. }
  75. })
  76. }]).run((cms) => {
  77. })
  78. // console.log('(this.auth)', this.auth)
  79. // console.log($resource(`${BASE_URL}/authenticate`, {}, {
  80. // save: {
  81. // method: "POST",
  82. // params: {},
  83. // }
  84. // }), this.auth)
  85. // console.dir(this.auth)
  86. // console.log('this.auth.save(input)'.this.auth.save(input))