Skip to content

Instantly share code, notes, and snippets.

@gihrig
Last active August 29, 2015 14:22
Show Gist options
  • Save gihrig/8e832b83b1a235591448 to your computer and use it in GitHub Desktop.
Save gihrig/8e832b83b1a235591448 to your computer and use it in GitHub Desktop.
Bhavr Delgtn JS Ex3
'use strict';
var LoginController = {
errors: [],
getUser() {
var user = document.getElementById(
'login_username'
).value;
console.log('LoginController.getUser - user: ' + user);
return user;
},
getPassword() {
var pw = document.getElementById(
'login_password'
).value;
console.log('LoginController.getPassword - pass: ' + pw);
return pw;
},
validateEntry(user, pw) {
console.log('LoginController.validateEntry - User: ' + user + ' pass: ' + pw);
user = user || this.getUser();
pw = pw || this.getPassword();
if (!(user && pw)) {
return this.failure(
'Please enter a username & password!'
);
}
if (pw.length < 5) {
return this.failure(
'Password must be 5+ characters!'
);
}
// got here? validated!
return true;
},
showDialog(title, msg) {
console.log('LoginController.showDialog');
// display success message to user in dialog
alert(title + ': ' + msg);
},
failure(err) {
console.log('LoginController.failure');
this.errors.push(err);
this.showDialog('Error', 'Login invalid: ' + err);
}
};
var AuthController = {
errors: [],
checkAuth() {
console.log('AuthController.checkAuth');
var user = this.getUser();
var pw = this.getPassword();
if (this.validateEntry(user, pw)) {
this.server('/check-auth', {
user: user,
pw: pw
})
.then(this.accepted.bind(this))
.catch(this.rejected.bind(this));
}
},
server(url, data) {
console.log('AuthController.server - url: ' + url + ' data: ' + JSON.stringify(data));
// return $.ajax({
// url: url,
// data: data
// });
if (data.user === 'Joe' && data.pw === 'Password') {
return Promise.resolve('Welcome ' + data.user + '!');
}
return Promise.reject('Bad username or password');
},
accepted(msg) {
console.log('AuthController.accepted');
this.showDialog('Success', msg);
},
rejected(err) {
console.log('AuthController.rejected - err: ' + err);
this.failure('Auth Failed: ' + err);
}
};
// Link `AuthController` to delegate to `LoginController`
Object.setPrototypeOf(AuthController, LoginController);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment