From 969c7a2a36f3133e6e82b61011545a32a6bade37 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 30 Dec 2021 14:56:43 +0000 Subject: show parents / breadcrumbs --- lib/App/MediaControl/DB.rakumod | 17 +++++++++++++++++ lib/App/MediaControl/Web.rakumod | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/App/MediaControl/DB.rakumod b/lib/App/MediaControl/DB.rakumod index 428ed51..20fe956 100644 --- a/lib/App/MediaControl/DB.rakumod +++ b/lib/App/MediaControl/DB.rakumod @@ -105,6 +105,23 @@ class App::MediaControl::DB { } } + method get-parents-of(Int:D() $id) { + self!db: { + .query(q:to/END/,$id).hashes.reverse; + WITH f(id, parent_id, name) AS ( + SELECT id, parent_id, name + FROM files + WHERE id=$id + UNION ALL + SELECT files.id, files.parent_id, files.name + FROM files JOIN f ON files.id=f.parent_id + ) + SELECT id, name + FROM f + END + } + } + method get-entry(Int:D() $id) { self!db: { .query(q:to/END/,$id).hash; diff --git a/lib/App/MediaControl/Web.rakumod b/lib/App/MediaControl/Web.rakumod index cb12783..9ef40c0 100644 --- a/lib/App/MediaControl/Web.rakumod +++ b/lib/App/MediaControl/Web.rakumod @@ -40,7 +40,7 @@ class App::MediaControl::Web { get -> $id=Nil { my %reply = children => @(self.db.get-children-of($id)); with $id { - %reply = self.db.get-entry($id); + %reply = self.db.get-parents-of($id); }; content 'application/json', %reply; } -- cgit v1.2.3