aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@thenautilus.net>2021-12-30 14:56:43 +0000
committerdakkar <dakkar@thenautilus.net>2021-12-30 14:56:43 +0000
commit969c7a2a36f3133e6e82b61011545a32a6bade37 (patch)
tree6d98057d89fd814a5f71d475ff8bd2f9292189a4
parentstart of browse ui (diff)
downloadmedia-control-969c7a2a36f3133e6e82b61011545a32a6bade37.tar.gz
media-control-969c7a2a36f3133e6e82b61011545a32a6bade37.tar.bz2
media-control-969c7a2a36f3133e6e82b61011545a32a6bade37.zip
show parents / breadcrumbs
-rw-r--r--lib/App/MediaControl/DB.rakumod17
-rw-r--r--lib/App/MediaControl/Web.rakumod2
2 files changed, 18 insertions, 1 deletions
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<this> = self.db.get-entry($id);
+ %reply<parents> = self.db.get-parents-of($id);
};
content 'application/json', %reply;
}