52 lines
1.1 KiB
JavaScript
52 lines
1.1 KiB
JavaScript
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
|