'use strict'; const A = Object.assign; angular.module('api.cms.ufmg', ['ngResource']) .constant('BASE_URL', 'http://150.164.180.61:9999') .service('cms', ['$resource', '$q', 'BASE_URL', function ($resource, $q, BASE_URL) { const cms = this; A(cms, { user: {}, session: {}, setSession: function (session) { cms.session = session; return cms.init(); }, Logout: () => { return $q((res, rej) => { setTimeout(() => { window.localStorage.removeItem('access_roken') cms.session = {}; res() }) }) }, Authenticated: function () { return $q((res, rej) => { setTimeout(() => { const session = window.localStorage.getItem('access_roken') if (session) { cms.setSession(JSON.parse(session)).then(user => res(user)) } else { rej() } }) }) }, Authenticate: function (input) { return $q((res, rej) => { return cms.auth.save(input).$promise.then(data => { this.setSession({ access_token: data.access_token, expires_in: data.expires_in, refresh_token: data.refresh_token, scope: data.scope, token_type: data.token_type }) window.localStorage.setItem('access_roken', JSON.stringify(cms.session)) res(cms.session) }, rej) }) }, auth: $resource(`${BASE_URL}/authenticate`, {}, {}), init: function () { let base = { headers: { 'Authorization': 'Bearer ' + cms.session.access_token } } A(this, { account: $resource(`${BASE_URL}/account`, {}, { get: A(base, { method: "GET", // params: {}, }) }), news: $resource(`${BASE_URL}/news/:id`, { id: '@id' }, { query: A(base, { method: "GET", params: {}, }), get: A(base, { method: "GET", params: {}, }) }) }); return $q((res, rej) => { cms.account.get().$promise.then(user => { cms.user = user; res(user) }, rej); }) } }) }]).run((cms) => { }) // console.log('(this.auth)', this.auth) // console.log($resource(`${BASE_URL}/authenticate`, {}, { // save: { // method: "POST", // params: {}, // } // }), this.auth) // console.dir(this.auth) // console.log('this.auth.save(input)'.this.auth.save(input))