From 9bcaa2449639ca38996d686408f21ba76fb35644 Mon Sep 17 00:00:00 2001 From: Cerys Date: Sun, 26 Jan 2025 21:33:23 +0000 Subject: [PATCH] " --- Public/API/V1/GetABCFile.php | 61 ++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/Public/API/V1/GetABCFile.php b/Public/API/V1/GetABCFile.php index c3dfe72..985eced 100644 --- a/Public/API/V1/GetABCFile.php +++ b/Public/API/V1/GetABCFile.php @@ -1,35 +1,64 @@ RunOneSelect( +$tuneDetails = (new DatabaseInteractions())->RunOneSelect( queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( table: 'Tunes', id: $targetTuneID ) - ->cols(cols: [ - 'T.*', - ]) + ->cols(cols: [ + 'T.*', + ]) ); -$temp = new \App\Dataclasses\ABCWrapper($result); +$variants = $db->RunOneSelect( + queryBuilder: SQLQueryBuilderWrapper::SELECT( + table: 'Tunes' + ) + ->cols([ + 'T.ID AS TuneID', + 'T_TV.ID AS TuneVariantID', + 'T.Title', + "CONCAT('[', GROUP_CONCAT( + CONCAT( + '{\"TimeSignature\":', JSON_QUOTE(T_TVP.TimeSignature), ',', + '\"KeySignature\":', JSON_QUOTE(T_TVP.KeySignature), ',', + '\"ABCNotation\":', JSON_QUOTE(T_TVP.ABCNotation), '}' + ) + ), ']') AS Parts" + ]) + ->join( + join: 'INNER', + spec: 'TuneVariants T_TV', + cond: 'T.ID = T_TV.TuneID' + ) + ->join( + join: 'INNER', + spec: 'TuneVariantParts T_TVP', + cond: 'T_TV.ID = T_TVP.TuneVariantID' + ) + ->where(cond: 'T.ID = :__tune_id__') + ->groupBy(spec: [ + 'T.ID', + 'T_TV.ID', + 'T.Title', + ]) + ->bindValue(name: '__tune_id__', value: $targetTuneID) +); -/* -header(header: "Content-type: text/text"); -echo($temp->Build()); -die(); -*/ +$tuneDetails = new DatabaseFolkTuneDetails($tuneDetails); +$tuneDetails->Variants[] = new TuneVariant($tuneDetails, $variants); -/* -$filePath = "$tuneDir/$targetTuneID/primary.abc"; -$temp = file_get_contents(filename: $filePath); -*/ -header(header: "Content-type: text/xml"); -echo $temp->Build(); +header(header: "Content-type: text/text"); +echo $tuneDetails->Variants[0]->Build(); die();