diff options
Diffstat (limited to 'lib/App/MediaControl/Web.rakumod')
-rw-r--r-- | lib/App/MediaControl/Web.rakumod | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/App/MediaControl/Web.rakumod b/lib/App/MediaControl/Web.rakumod index b2ac36e..c577d90 100644 --- a/lib/App/MediaControl/Web.rakumod +++ b/lib/App/MediaControl/Web.rakumod @@ -3,10 +3,12 @@ use Cro::HTTP::Server; use Cro::HTTP::Router; use Vlc::Client; use Lirc::Commands; +use App::MediaControl::DB; class App::MediaControl::Web { has Vlc::Client $.vlc is required; has Lirc::Commands $.lirc is required; + has App::MediaControl::DB $.db is required; has Int $.port = 8080; has Cro::Service $!service handles <stop>; @@ -28,6 +30,16 @@ class App::MediaControl::Web { } } + my $media = route { + get -> $id=Nil { + my %reply = children => @(self.db.get-children-of($id)); + with $id { + %reply<this> = self.db.get-entry($id); + }; + content 'application/json', %reply; + } + }; + my $application = route { resources-from %?RESOURCES; @@ -35,7 +47,7 @@ class App::MediaControl::Web { get -> 'ir.png' { resource 'ir.png' } get -> 'ir.webmanifest' { resource 'ir.webmanifest' } - include :$vlc, :$ir; + include :$vlc, :$ir, :$media; around -> &handler { handler(); |