about summary refs log tree commit diff
path: root/laravel/app
diff options
context:
space:
mode:
Diffstat (limited to 'laravel/app')
-rw-r--r--laravel/app/Http/Controllers/SongController.php15
-rw-r--r--laravel/app/Suggestion.php11
2 files changed, 26 insertions, 0 deletions
diff --git a/laravel/app/Http/Controllers/SongController.php b/laravel/app/Http/Controllers/SongController.php
index 60b3e67..087c358 100644
--- a/laravel/app/Http/Controllers/SongController.php
+++ b/laravel/app/Http/Controllers/SongController.php
@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 use App\Playlist;
 use App\Song;
+use App\Suggestion;
 use Illuminate\Http\Request;
 
 class SongController extends Controller
@@ -55,8 +56,22 @@ class SongController extends Controller
             $params['back'] = Song::where('id', '<', $song->id)->orderBy('id', 'desc')->first();
             $params['next'] = Song::where('id', '>', $song->id)->orderBy('id', 'asc' )->first();
         }
+        $params['suggestions'] = Song::inRandomOrder()->limit(5)->get();
+        foreach ($params['suggestions'] as $sugSong){
+            $sug = Suggestion::firstOrNew(['from' => $song->id, 'song' => $sugSong->id]);
+            $sug->shown++;
+            $sug->save();
+        }
         return view('song', $params );
     }
+    public function suggested($song, $from)
+    {
+        $sug = Suggestion::firstOrNew(['song' => $song, 'from' => $from]);
+        $sug->clicks++;
+        $sug->save();
+        //Suggestion::make(['song' => $song, 'from' => $from]);
+        return redirect(route('song.show', $song));
+    }
 
     /**
      * @brief Determine whether or not this line contains chords.
diff --git a/laravel/app/Suggestion.php b/laravel/app/Suggestion.php
new file mode 100644
index 0000000..5d081ff
--- /dev/null
+++ b/laravel/app/Suggestion.php
@@ -0,0 +1,11 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class Suggestion extends Model
+{
+    public $fillable = ['song', 'from'];
+    //
+}