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
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
124 changes: 124 additions & 0 deletions controllers/artists_controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
module.exports = (db) => {

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

let allArtists = (req,res) => {
db.artists.allArtists_cb((err,result) => {
if (err) {
console.log('error in artists_controller allArtists', err.message);
}
else {
res.send(result.rows);
}
})
}

let newArtist = (req,res) => {
res.render('new');
}

let createNewArtist = (req,res) => {

let name = req.body.artistName;
let img_url = req.body.imageUrl;
let nationality = req.body.artistNationality;

db.artists.createNewArtist_cb(name, img_url, nationality, (err,result) => {
if (err) {
console.log('error in artists_controller createNewArtist', err.message);
}
else {
res.send(req.body);
}
})
}

let getArtist = (req,res) => {

let id = req.params.id;

db.artists.getArtist_cb(id, (err,result) => {
if (err) {
console.log('error in artists_controller getArtist', err.message);
}
else {
res.render('artist', result.rows);
}
})
}

let deleteArtist = (req,res) => {

let id = req.params.id;

db.artists.deleteArtist_cb(id, (err,result) => {
if (err) {
console.log('error in artists_controller deleteArtist', err.message);
}
else {
res.send('Artist Deleted');
}
})
}

let editArtist = (req,res) => {

let id = req.params.id;

db.artists.editArtist_cb(id, (err,result) => {
if (err) {
console.log('error in artists_controller editArtist', err.message);
}
else {
res.render('edit_artist', result.rows);
}
})
}

let editedArtist = (req,res) => {

let name = req.body.artistName;
let img_url = req.body.imageUrl;
let nationality = req.body.artistNationality;
let id = req.params.id;

db.artists.editedArtist_cb(name, img_url, nationality, id, (err,result) => {
if (err) {
console.log('error in artists_controller editedArtist', err.message);
}
else {
res.send(req.body);
}
})
}

let artistSongs = (req,res) => {

let id = req.params.id;

db.artists.artistSongs_cb(id, (err,result) => {
if (err) {
console.log('error in artists_controller artistSongs', err.message);
}
else {
res.send(result.rows);
}
})
}

return {
homepage,
allArtists,
newArtist,
createNewArtist,
getArtist,
deleteArtist,
editArtist,
editedArtist,
artistSongs
}
}


119 changes: 119 additions & 0 deletions controllers/playlists_controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
const e = require("express");

module.exports = (db) => {

let allPlaylists = (req,res) => {

db.playlists.allPlaylists_cb((err, result) => {
if (err) {
console.log('error at playlists_controller, allPlaylists ---', err.message);
}
else {
res.send(result.rows);
}
})
}

let newPlaylist = (req,res) => {
res.render('new');
}

let createNewPlaylist = (req,res) => {

let name = req.body.name;

db.playlists.createNewPlaylist_cb(name, (err, result) => {
if (err) {
console.log('error at playlists_controller, createNewPlaylist ---', err.message);
}
else {
res.send('Playlist Added');
}
})
}

let getPlaylist = (req, res) => {

let id = req.params.id;

db.playlists.getPlaylist_cb(id, (err, result) => {
if (err) {
console.log('error at playlists_controller. getPlaylist ---', err.message);
}
else {
res.render('playlist', result.rows);
}
})
}

let editPlaylist = (req, res) => {

let id =req.params.id;

db.playlists.editPlaylist_cb(id, (err, result) => {
if (err) {
console.log('error at playlists_controller, editPlaylist ---', err.message);
}
else {
res.render('edit_playlist', result.rows);
}
})
}

let editedPlaylist = (req, res) => {

let name = req.body.name;
let id =req.params.id;

db.playlists.editedPlaylist_cb(name, id, (err, result) => {
if (err) {
console.log('error at playlists_controller, editedPlaylist ---', err.message);
}
else {
res.redirect(`/playlists/${id}`);
}
})
}

let deletePlaylist = (req, res) => {

let id = req.params.id;

db.playlists.deletePlaylist_cb(id, (err, result) => {
if (err) {
console.log('error at playlists_controller, deletePlaylist ---', err.message);
}
else {
res.redirect('/playlists');
}
})
}

let addSongToPlaylist = (req, res) => {

let name = req.body.name;
let id = req.params.id;

db.playlists.addSongToPlaylist_cb = (name, id, (err, result) => {
if (err) {
console.log('error at playlists_controller, addSongToPlaylist ---', err.message);
}
else {
res.send('Song Added');
}
})
}



return {
allPlaylists,
newPlaylist,
createNewPlaylist,
getPlaylist,
editPlaylist,
editedPlaylist,
deletePlaylist,
addSongToPlaylist
}
}
107 changes: 107 additions & 0 deletions controllers/songs_controller.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
module.exports = (db) => {

let allSongs = (req,res) => {
db.songs.allSongs_cb((err,result) => {
if (err) {
console.log('error in songs_controller allSongs', err.message);
}
else {
res.send(result.rows);
}
})
}

let newSong = (req,res) => {
res.render('new');
}

let createNewSong = (req,res) => {

let title = req.body.title;
let album = req.body.album;
let preview_link = req.body.preview_link;
let artwork = req.body.artwork;
let artistName = req.body.artistName;

db.songs.createNewSong_cb(title, album, preview_link, artwork, artistName, (err,result) => {
if (err) {
console.log('error in songs_controller createNewSong', err.message);
}
else {
res.send(req.body);
}
})
}

let getSong = (req,res) => {

let id = req.params.id;

db.songs.getSong_cb(id, (err,result) => {
if (err) {
console.log('error in songs_controller getSong', err.message);
}
else {
res.render('song', result.rows);
}
})
}

let deleteSong = (req,res) => {

let id = req.params.id;

db.songs.deleteSong_cb(id, (err,result) => {
if (err) {
console.log('error in songs_controller deleteSong', err.message);
}
else {
res.send('Song Deleted');
}
})
}

let editSong = (req,res) => {

let id = req.params.id;

db.songs.editSong_cb(id, (err,result) => {
if (err) {
console.log('error in songs_controller editSong', err.message);
}
else {
res.render('edit_song', result.rows);
}
})
}

let editedSong = (req,res) => {

let title = req.body.title;
let album = req.body.album;
let preview_link = req.body.preview_link;
let artwork = req.body.artwork;
let id = req.params.id;

db.songs.editedSong_cb(title, album, preview_link, artwork, id, (err,result) => {
if (err) {
console.log('error in songs_controller editedSong', err.message);
}
else {
res.send(req.body);
}
})
}

return {
allSongs,
newSong,
createNewSong,
getSong,
deleteSong,
editSong,
editedSong
}
}


40 changes: 40 additions & 0 deletions db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const pg = require('pg');

const configs = {
user: 'wongjoey',
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);
});

const artistsModelsFunction = require('./models/artists_model');
const songsModelsFunction = require('./models/songs_model');
const playlistsModelsFunction = require('./models/playlists_model.js');

const poolArtistsModelsObject = artistsModelsFunction(pool);
const poolSongsModelsObject = songsModelsFunction(pool);
const poolPlaylistsModelsObject = playlistsModelsFunction(pool);

module.exports = {
//make queries directly from here
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
*/

artists: poolArtistsModelsObject,
songs: poolSongsModelsObject,
playlists: poolPlaylistsModelsObject
};
Loading