Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Update JSDocs and fix memory leak (use data obj)
  • Loading branch information
y21 authored Jun 25, 2018
commit 4be2a5bda055cfa31aa69999603b73b69c81a243
28 changes: 21 additions & 7 deletions backend/SessionIDManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -134,16 +134,30 @@ exports.generateSessionID = length => {
* Deletes a session id from database
*
* @param {object} database The database object
* @param {string} session The session id
* @returns {promise<string>} The deleted session id
* @param {string} data An object with both a type property (search keyword, either: session, username or expiresAt) and a value property
* @returns {promise<string>} The provided value
*/
exports.deleteSession = (database, session) => {
exports.deleteSession = (database, data) => {
return new Promise((resolve, reject) => {
try {
database.prepare("SELECT * FROM sessionids WHERE sessionid = ?").then(prepare => {
prepare.run([session]).then(() => resolve(session)).catch(reject);
}).catch(reject);
} catch(e){
switch (data.type) {
case "session":
database.prepare("DELETE FROM sessionids WHERE sessionid = ?").then(prepare => {
prepare.run([data.value]).then(() => resolve(data.value)).catch(reject);
}).catch(reject);
break;
case "username":
database.prepare("DELETE FROM sessionids WHERE username = ?").then(prepare => {
prepare.run([data.value]).then(() => resolve(data.value)).catch(reject);
}).catch(reject);
break;
case "expiresAt":
database.prepare("DELETE FROM sessionids WHERE expires = ?").then(prepare => {
prepare.run([data.value]).then(() => resolve(data.value)).catch(reject);
}).catch(reject);
break;
}
} catch (e) {
reject(e);
}
});
Expand Down