var localStorage = require('../localStorage')
var EventBus = require('../eventBus')

var Api = {};

Api.login = function (data) {
  return $.ajax({
    url: '/api/users/login',
    dataType: 'json',
    type: 'post',
    contentType: 'application/json',
    data: JSON.stringify(data),
    processData: false,
  })
};

Api.signup = function (data) {
  return $.ajax({
    url: '/api/users',
    dataType: 'json',
    type: 'post',
    contentType: 'application/json',
    data: JSON.stringify(data),
    processData: false,
  });
};

Api.checkActiveSession = function() {
  return $.getJSON('/api/users/self')
}

Api.init = function () {

// Login

  EventBus.on('api:login', function (username, password) {
    Api.login({username: username, password: password})
      .then(EventBus.trigger.bind(EventBus, 'api:login:successful'))
      .catch(EventBus.trigger.bind(EventBus, 'api:login:error'))
      .done()
  })

  EventBus.on('api:login:successful', function (user) {
    localStorage.setItem('user', user);
    EventBus.trigger('ui:showHome')
  })

  EventBus.on('api:login:error', EventBus.trigger.bind(EventBus, 'ui:showError'))

// Signup

  EventBus.on('api:signup', function (data) {
    Api.signup(data)
      .then(EventBus.trigger.bind(EventBus, 'api:signup:successful'))
      .catch(EventBus.trigger.bind(EventBus, 'api:signup:error'))
      .done()
  })

  EventBus.on('api:signup:successful', function (user) {
    EventBus.trigger('ui:showHome')
  })

  EventBus.on('api:signup:error', EventBus.trigger.bind(EventBus, 'ui:showError'))
}

module.exports = Api
@@ -308,24 +308,213 @@
 e,%0A  %7D)%0A%7D;%0A%0A
+Api.logout = function (data) %7B%0A  return $.ajax(%7B%0A    url: '/api/users/logout',%0A    dataType: 'json',%0A    type: 'post',%0A    contentType: 'application/json',%0A    processData: false,%0A  %7D)%0A%7D;%0A%0A
 Api.signup =
@@ -1321,16 +1321,458 @@
 ror'))%0A%0A
+// Logout%0A%0A  EventBus.on('api:logout', function () %7B%0A    Api.logout()%0A      .then(EventBus.trigger.bind(EventBus, 'api:logout:successful'))%0A      .catch(EventBus.trigger.bind(EventBus, 'api:logout:error'))%0A      .done()%0A  %7D)%0A%0A  EventBus.on('api:logout:successful', function () %7B%0A    localStorage.removeItem('user');%0A    EventBus.trigger('ui:showHome')%0A  %7D)%0A%0A  EventBus.on('api:logout:error', EventBus.trigger.bind(EventBus, 'ui:showError'))%0A%0A
 // Signu

Add logount funcions