From b3cfb984d774b217e7a95ba569fe873b8c05251b Mon Sep 17 00:00:00 2001 From: dakkar Date: Sat, 23 Dec 2017 20:02:43 +0000 Subject: wiring the collection into the application --- bin/ultramarine | 14 ++++++++++++++ lib/Ultramarine/Controller.pm6 | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/bin/ultramarine b/bin/ultramarine index 07cd869..e7c545e 100644 --- a/bin/ultramarine +++ b/bin/ultramarine @@ -2,6 +2,10 @@ use v6.d.PREVIEW; use Ultramarine::Model::License; use Ultramarine::Model::Users; +use Ultramarine::Model::DirScanner; +use Ultramarine::Model::DB; +use Ultramarine::Model::MusicFile; +use Ultramarine::Model::Collection; use Ultramarine::Middleware::Authentication; use Ultramarine::Middleware::Authorisation; use Ultramarine::Middleware::SetContentType; @@ -15,6 +19,16 @@ my $users = Ultramarine::Model::Users.new( ); my $controller = Ultramarine::Controller.new( license => Ultramarine::Model::License.new, + collection => Ultramarine::Model::Collection.new( + db => Ultramarine::Model::DB.new( + :db-driver, + :db-args(:database('/tmp/songs.sqlite')), + ), + dirscan => Ultramarine::Model::DirScanner.new( + :root('/mnt/music/Alanis Morissette'), + ), + file-class => Ultramarine::Model::MusicFile, + ), authorisation => Ultramarine::Middleware::Authorisation.new, ).routes; diff --git a/lib/Ultramarine/Controller.pm6 b/lib/Ultramarine/Controller.pm6 index 35f37a9..e864b00 100644 --- a/lib/Ultramarine/Controller.pm6 +++ b/lib/Ultramarine/Controller.pm6 @@ -8,6 +8,7 @@ use Cro; class Ultramarine::Controller { has $.license is required; has $.authorisation is required; + has $.collection is required; sub respond(*@body) { response.status = 200; @@ -65,6 +66,14 @@ class Ultramarine::Controller { ] ], } + # this is clearly not a Subsonic method + post -> 'dakkarList' { + await $!collection.is-ready; + respond [ + :status, + songs => $!collection.all-songs, + ]; + } } } -- cgit v1.2.3