|
|
|
@ -6,16 +6,17 @@ require "sqlite3" |
|
|
|
|
#1. |
|
|
|
|
# - Kontrollera gems (sinatra, slim, sqlite). Kommer du behöva sessions? Troligen ej, ska endast utföra CRUD på databasen. |
|
|
|
|
# - Se hur Slimfiler är organierade i mappstrukturen. Följer det REST? Hur kallar man på en slimfil i en mapp? |
|
|
|
|
# [x] |
|
|
|
|
|
|
|
|
|
#2. Starta upp applikationen och inspektera koden i Chrome (högerklick>inspect). Hur ser länkarna ut? Finns de som routes i app.rb? |
|
|
|
|
#2. Starta upp applikationen och inspektera koden i Chrome (högerklick>inspect). Hur ser länkarna ut? Finns de som routes i app.rb? [x] |
|
|
|
|
|
|
|
|
|
#3. När vi klickar på ett album vill vi även se artisten (inte bara id). Gör ett andra anrop till db och skicka med i locals. |
|
|
|
|
#3. När vi klickar på ett album vill vi även se artisten (inte bara id). Gör ett andra anrop till db och skicka med i locals. [x] |
|
|
|
|
|
|
|
|
|
#4. Skapa en sida där vi lägger till nya album för tex Artisten ACDC (ArtistId 1). Hitta gärna på nya namn på skivorna |
|
|
|
|
#4. Skapa en sida där vi lägger till nya album för tex Artisten ACDC (ArtistId 1). Hitta gärna på nya namn på skivorna [x] |
|
|
|
|
|
|
|
|
|
#5. Skapa funktionalitet för att ta bort album |
|
|
|
|
#5. Skapa funktionalitet för att ta bort album [x] |
|
|
|
|
|
|
|
|
|
#6. Skapa funktionalitet för att uppdatera artistinformation |
|
|
|
|
#6. Skapa funktionalitet för att uppdatera artistinformation [x] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
get "/" do |
|
|
|
@ -43,6 +44,26 @@ post "/albums/new" do |
|
|
|
|
redirect "/albums" |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
get "/albums/:id/edit" do |
|
|
|
|
db = SQLite3::Database.new("db/chinook-crud.db") |
|
|
|
|
db.results_as_hash = true |
|
|
|
|
id = params[:id].to_i |
|
|
|
|
album = db.execute("SELECT * FROM albums WHERE AlbumId = ?", id).first |
|
|
|
|
|
|
|
|
|
slim(:"albums/edit", locals: {album: album}) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
post "/albums/:id/update" do |
|
|
|
|
db = SQLite3::Database.new("db/chinook-crud.db") |
|
|
|
|
db.results_as_hash = true |
|
|
|
|
|
|
|
|
|
id = params[:id].to_i |
|
|
|
|
new_title, new_artistid = params[:new_title], params[:new_artistid] |
|
|
|
|
db.execute("UPDATE albums SET Title = ?, ArtistId = ? WHERE AlbumId = ?", new_title, new_artistid, id) |
|
|
|
|
|
|
|
|
|
redirect "/albums" |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
post "/albums/:id/delete" do |
|
|
|
|
db = SQLite3::Database.new("db/chinook-crud.db") |
|
|
|
|
db.results_as_hash = true |
|
|
|
|