Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 110 additions & 0 deletions controllers/artist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
// takes in allModels as parameter from routes.js < index.js (require db.js)
// export to routes.js
module.exports = (db) => {

let root = (req, res) => {
res.render('./home');
}

let allArtists = (req, res) => {
db.artist.getAllArtist((err, result) => {
if (err) {
console.log("-- Error in allArtist controller", err.message);
} else {
res.render('./artists/artists', result);
}
});
}

let newArtistForm = (req, res) => {
res.render('./artists/new')
}

let newArtist = (req, res) => {
let artistInfo = req.body;
let values = [artistInfo.name, artistInfo.photo_url, artistInfo.nationality];
db.artist.createNewArtist(values, (err, result) => {
if (err) {
console.log("-- Error in newArtist controller", err.message)
} else {
if (result === true) {
res.redirect('/artists/');
}
}
})
}

let showSingleArtist = (req, res) => {
let id = req.params.id;
db.artist.selectSingleArtist(id, (err, result) => {
if (err) {
console.log("-- Error in showSingleArtist controller", err.message)
} else {
res.render('./artists/single_artist', result)
}
})
}

let getEditArtistForm = (req, res) => {
let id = req.params.id;
db.artist.selectSingleArtist(id, (err, result) => {
if (err) {
console.log("-- Error in editArtistForm controller", err.message)
} else {
res.render('./artists/update', result)
}
})
}

let updateEditArtist = (req, res) => {
let id = req.params.id;
let newData = [req.body.name, req.body.photo_url, req.body.nationality]
db.artist.updateArtist(id, newData, (err, result) => {
if (err) {
console.log("-- Error in updateEditArtist controller", err.message)
} else {
if (result === true) {
res.redirect('/artists/');
}
}
})
}

let deleteArtist = (req, res) => {
let id = req.params.id;

db.artist.removeArtist(id, (err, result) => {
if (err) {
console.log("-- Error in deleteArtist controller", err.message)
} else {
if (result === true) {
res.redirect('/artists/');
}
}
})
}

let artistSong = (req, res) => {
let id = req.params.id;

db.artist.getArtistSongs(id, (err, result) => {
if (err) {
console.log("-- Error in deleteArtist controller", err.message)
} else {
res.render('./artists/artistsong', result)
}
})
}

return {
root,
allArtists,
newArtistForm,
newArtist,
showSingleArtist,
getEditArtistForm,
updateEditArtist,
deleteArtist,
artistSong
}
};
74 changes: 74 additions & 0 deletions controllers/playlist.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
module.exports = (db) => {

let allPlaylist = (req, res) => {
db.playlist.getAllPlaylist((err, result) => {
if (err) {
console.log("-- Error in allPlaylist controller", err.message);
} else {
res.render('./playlists/playlists', result);
}
})
}

let newPlaylistForm = (req, res) => {
res.render('./playlists/new_playlist')
}

let newPlaylist = (req, res) => {
let newData = [req.body.name];
db.playlist.createNewPlaylist(newData, (err, result) => {
if (err) {
console.log("-- Error in newPlaylist controller", err.message)
} else {
if (result === true) {
res.redirect('/playlist/')
}
}
})
}

let showPlaylistSong = (req, res) => {
let id = req.params.id;

db.playlist.showSongInPlaylist(id, (err, result) => {
if (err) {
console.log("-- Error in showPlaylistSong controller", err.message)
} else {
if (result < 1) {
res.send("There is no song in the playlist")
} else {
res.render('./playlists/playlist_songs', result)
}
}
})
}

let newEditPlaylistForm = (req, res) => {
let id = req.params.id;
let obj = {"id": id};
res.render('./playlists/new_song_to_playlist', obj)
}

let addSongToPlaylist = (req, res) => {
let playlistId = req.params.id;
let values = [req.body.title, playlistId];
db.playlist.addPlaylistSong(values, (err, result) => {
if (err) {
console.log("-- Error in addSongToPlaylist controller", err.message)
} else {
if (result === true) {
res.redirect(`/playlist/${playlistId}`)
}
}
})
}

return {
allPlaylist,
newPlaylistForm,
newPlaylist,
showPlaylistSong,
newEditPlaylistForm,
addSongToPlaylist
}
};
96 changes: 96 additions & 0 deletions controllers/song.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
// takes in allModels as parameter from routes.js < index.js (require db.js)
// export to routes.js
module.exports = (db) => {

let allSongs = (req, res) => {
db.song.getAllSong((err, result) => {
if (err) {
console.log("-- Error in allSong controller", err.message);
} else {
res.render('./songs/songs', result);
}
})
}

let newSongForm = (req, res) => {
res.render('./artists/new');
}

let newSong = (req, res) => {
let songInfo = req.body;
let values = [songInfo.title, songInfo.album, songInfo.preview_link, songInfo.artwork, songInfo.artist_id];

db.song.createNewSong(values, (err,result) => {
if (err) {
console.log("-- Error in createNewSong controller", err.message);
} else {
if (result === true) {
res.redirect('/songs');
}
}
})
}

let showSingleSong = (req, res) => {
let id = req.params.id;

db.song.selectSingleSong(id, (err, result) => {
if (err) {
console.log("-- Error in showSingleSong controller", err.message);
} else {
res.render('./songs/single_song', result)
}
})
}

let getEditSongForm = (req, res) => {
let id = req.params.id;

db.song.selectSingleSong(id, (err, result) => {
if (err) {
console.log("-- Error in getEditSongForm controller", err.message);
} else {
res.render('./songs/update_song', result)
}
})
}

let updateEditSong = (req, res) => {
let id = req.params.id;
let newData = [req.body.title, req.body.album, req.body.preview_link, req.body.artwork, req.body.artist_id];

db.song.updateSong(id, newData, (err, result) => {
if (err) {
console.log("-- Error in updateEditSong controller", err.message)
} else {
if (result === true) {
res.redirect('/songs/');
}
}
})
}

let deleteSong = (req, res) => {
let id = req.params.id;

db.song.removeSong(id, (err, result) => {
if (err) {
console.log("-- Error in deleteSong controller", err.message)
} else {
if (result === true) {
res.redirect('/songs/');
}
}
})
}

return {
allSongs,
newSongForm,
newSong,
showSingleSong,
getEditSongForm,
updateEditSong,
deleteSong
}
};
42 changes: 42 additions & 0 deletions db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
const pg = require('pg');

let configs = {
user: 'vincent',
host: '127.0.0.1',
database: 'tunr_db',
port: 5432
};

const pool = new pg.Pool(configs);

pool.on('error', function(err) {
console.log('idle client error', err.message, err.stack);
});

// import/require models files

const allArtistFunction = require('./models/artist');
let artistModelsObject = allArtistFunction(pool);

const allSongFunction = require('./models/song');
let songModelsObject = allSongFunction(pool);

const allPlaylistFunction = require('./models/playlist');
let playlistModelsObject = allPlaylistFunction(pool);

// module export

module.exports = {
// make queries using this method
queryInterface: (text, params, callback) => {
return pool.query(text, params, callback);
},

// get a reference to end the connection pool at server end
pool: pool,

// add app models here
artist: artistModelsObject,
song: songModelsObject,
playlist: playlistModelsObject
};
Loading