mStream/modules/db-write/database-default-sqlite.js
2017-09-17 01:17:21 -04:00

100 lines
2.4 KiB
JavaScript

// functions that store data into the SQLite DB
// These functions will take in JSON arrays of song data and then save that dat to the DB
const sqlite3 = require('sqlite3').verbose();
var db;
exports.setup = function(dbPath){
try{
db = new sqlite3.Database(dbPath);
}catch(e){
console.log(e);
}
}
exports.getUserFiles = function(thisUser, callback){
db.all("SELECT path, file_modified_date FROM items WHERE user = ?;", thisUser.username, function(err, rows){
// Format results
if(!rows){
rows = [];
}
// callback function
callback(rows);
});
}
/**
* @param arrayOfSongs
* @param username
* @return Promise
*/
exports.insertEntries = function(arrayOfSongs, username){
var sql2 = "insert into items (title,artist,year,album,path,format, track, disk, user, filesize, file_modified_date, file_created_date, hash, album_art_file) values ";
var sqlParser = [];
while(arrayOfSongs.length > 0) {
var song = arrayOfSongs.pop();
var songTitle = null;
var songYear = null;
var songAlbum = null;
var artistString = null;
if(song.artist && song.artist.length > 0){
artistString = song.artist;
}
if(song.title && song.title.length > 0){
songTitle = song.title;
}
if(song.year){
songYear = song.year;
}
if(song.album && song.album.length > 0){
songAlbum = song.album;
}
sql2 += "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?), ";
sqlParser.push(songTitle);
sqlParser.push(artistString);
sqlParser.push(songYear);
sqlParser.push(songAlbum);
sqlParser.push(song.filePath);
sqlParser.push(song.format);
sqlParser.push(song.track.no);
sqlParser.push(song.disk.no);
sqlParser.push(username);
sqlParser.push(song.filesize);
sqlParser.push(song.modified);
sqlParser.push(song.created);
sqlParser.push(song.hash);
sqlParser.push(song.albumArtFilename);
}
sql2 = sql2.slice(0, -2);
sql2 += ";";
return new Promise(function(resolve, reject) {
db.run(sql2, sqlParser, function(err) {
if(err)
reject(err);
else
resolve();
});
});
}
// TODO: Function that removes all files from the given DB
exports.purgeDB = function(){
}
exports.deleteFile = function(path, user, callback){
let sql = "DELETE FROM items WHERE path = ? AND user = ?;";
db.run(sql, [path, user], function() {
console.log('ITS DONE');
callback();
});
}