export class Session { constructor(app) { this.app = app this.UUID = '' this.initialized = false this.UserID = 0 } initialize() {//{{{ // Retrieving the stored session UUID, if any. // If one found, validate with server. let uuid = window.localStorage.getItem("session.UUID") if(uuid === null) { this.create() } else { this.UUID = uuid this.app.request('/session/retrieve', {}) .then(res=>{ this.UserID = res.Session.UserID this.initialized = true this.app.forceUpdate() }) .catch(this.app.responseError) } }//}}} create() {//{{{ this.app.request('/session/create', {}) .then(res=>{ this.UUID = res.Session.UUID window.localStorage.setItem('session.UUID', this.UUID) this.app.forceUpdate() }) .catch(this.responseError) }//}}} authenticate(username, password) {//{{{ this.app.request('/session/authenticate', { username, password, }) .then(res=>{ this.UserID = res.Session.UserID this.app.forceUpdate() }) .catch(this.app.responseError) }//}}} authenticated() {//{{{ return this.UserID != 0 }//}}} } // vim: foldmethod=marker