+var baseURL = '';
+
enyo.kind({
name: "blerg.API",
+ loggedIn: false,
+ username: "",
create: function() {
this.inherited(arguments);
+ if (enyo.getCookie('auth') && enyo.getCookie('username')) {
+ this.loggedIn = true;
+ this.username = enyo.getCookie('username');
+ // Defer the signal until everything's initialized
+ setTimeout(function() {
+ this.bubble('onLoginSuccessful', {username: this.username});
+ }.bind(this), 0);
+ }
+ },
+ login: function(username, password) {
+ var req = new enyo.Ajax({
+ url: baseURL + '/login',
+ method: 'POST'
+ });
+ req.response(function(inSender, inResponse) {
+ if (inResponse.status == 'success') {
+ this.loggedIn = true;
+ this.username = username;
+ enyo.setCookie('username', username);
+ this.bubble('onLoginSuccessful', {username: username});
+ } else {
+ enyo.setCookie('username', '', {"Max-Age": 0});
+ this.bubble('onLoginFailed');
+ }
+ }.bind(this));
+ req.go({
+ username: username,
+ password: password
+ });
+ },
+ logout: function() {
+ var req = new enyo.Ajax({
+ url: baseURL + '/logout',
+ method: 'POST'
+ });
+ req.response(function(inSender, inResponse) {
+ this.loggedIn = false;
+ enyo.setCookie('auth', '', {"Max-Age": 0});
+ this.bubble('onLogoutSuccessful');
+ }.bind(this));
+ req.go({
+ username: this.username
+ });
+ enyo.setCookie('username', '', {"Max-Age": 0});
+ },
+ requestFeedStatus: function() {
+ if (!this.loggedIn)
+ throw new Error('Cannot request feed status when not logged in');
+ // TODO
}
});