2fb9561464620d9f1ff7a36a0ecfe47c8421df3a
[blerg.git] / www / jssrc / blerg / API.js
1 var baseURL = '';
2
3 enyo.kind({
4         name: "blerg.API",
5         loggedIn: false,
6         username: "",
7         create: function() {
8                 this.inherited(arguments);
9                 if (enyo.getCookie('auth') && enyo.getCookie('username')) {
10                         this.loggedIn = true;
11                         this.username = enyo.getCookie('username');
12                         // Defer the signal until everything's initialized
13                         setTimeout(function() {
14                                 this.bubble('onLoginSuccessful', {username: this.username});
15                         }.bind(this), 0);
16                 }
17         },
18         login: function(username, password) {
19                 var req = new enyo.Ajax({
20                         url: baseURL + '/login',
21                         method: 'POST'
22                 });
23                 req.response(function(inSender, inResponse) {
24                         if (inResponse.status == 'success') {
25                                 this.loggedIn = true;
26                                 this.username = username;
27                                 enyo.setCookie('username', username);
28                                 this.bubble('onLoginSuccessful', {username: username});
29                         } else {
30                                 enyo.setCookie('username', '', {"Max-Age": 0});
31                                 this.bubble('onLoginFailed');
32                         }
33                 }.bind(this));
34                 req.go({
35                         username: username,
36                         password: password
37                 });
38         },
39         logout: function() {
40                 var req = new enyo.Ajax({
41                         url: baseURL + '/logout',
42                         method: 'POST'
43                 });
44                 req.response(function(inSender, inResponse) {
45                         this.loggedIn = false;
46                         enyo.setCookie('auth', '', {"Max-Age": 0});
47                         this.bubble('onLogoutSuccessful');
48                 }.bind(this));
49                 req.go({
50                         username: this.username
51                 });
52                 enyo.setCookie('username', '', {"Max-Age": 0});
53         },
54         requestFeedStatus: function() {
55                 if (!this.loggedIn)
56                         throw new Error('Cannot request feed status when not logged in');
57                 // TODO
58         }
59 });