7 changed files with 105 additions and 63 deletions
@ -1,53 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
use App\Dataclasses\DatabaseFolkTuneDetails; |
|
||||
use App\Dataclasses\TuneVariant; |
|
||||
use App\Wrappers\DatabaseInteractions; |
|
||||
use App\Wrappers\SQLQueryBuilderWrapper; |
|
||||
|
|
||||
$tuneDir = __DIR__ . '/../../../LocalStorage/Tunes'; |
|
||||
$targetTuneVariantID = $_GET['tune-variant-id']; |
|
||||
|
|
||||
$db = new DatabaseInteractions(); |
|
||||
|
|
||||
$variantDetails = $db->RunOneSelect( |
|
||||
queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( |
|
||||
table: 'TuneVariants', |
|
||||
id: $targetTuneVariantID |
|
||||
) |
|
||||
->cols([ |
|
||||
'T.ID AS TuneVariantID', |
|
||||
'T.TuneID AS TuneID', |
|
||||
"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: 'TuneVariantParts AS T_TVP', |
|
||||
cond: 'T.ID = T_TVP.TuneVariantID' |
|
||||
) |
|
||||
->groupBy(spec: [ |
|
||||
'T.ID', |
|
||||
]) |
|
||||
); |
|
||||
|
|
||||
$tuneDetails = $db->RunOneSelect( |
|
||||
queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( |
|
||||
table: 'Tunes', |
|
||||
id: $variantDetails['TuneID'] |
|
||||
) |
|
||||
); |
|
||||
|
|
||||
|
|
||||
$tuneDetails = new DatabaseFolkTuneDetails($tuneDetails); |
|
||||
$variantDetails = new TuneVariant($tuneDetails, $variantDetails); |
|
||||
|
|
||||
|
|
||||
header(header: "Content-type: text/text"); |
|
||||
echo $variantDetails->Build(); |
|
||||
die(); |
|
@ -0,0 +1,46 @@ |
|||||
|
<?php |
||||
|
|
||||
|
use App\Dataclasses\DatabaseFolkTuneDetails; |
||||
|
use App\Wrappers\DatabaseInteractions; |
||||
|
use App\Wrappers\SQLQueryBuilderWrapper; |
||||
|
|
||||
|
require_once __DIR__ . "/../../../vendor/autoload.php"; |
||||
|
|
||||
|
$tuneDir = __DIR__ . '/../../../LocalStorage/Tunes'; |
||||
|
$targetTuneVariantID = $_GET['tune-id']; |
||||
|
|
||||
|
$db = new DatabaseInteractions(); |
||||
|
|
||||
|
$tuneDetails = $db->RunOneSelect( |
||||
|
queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( |
||||
|
table: 'Tunes', |
||||
|
id: $targetTuneVariantID |
||||
|
) |
||||
|
->cols([ |
||||
|
'T.ID AS TuneID', |
||||
|
"CONCAT('[', GROUP_CONCAT( |
||||
|
CONCAT( |
||||
|
'{\"TimeSignature\":', JSON_QUOTE(T_TP.TimeSignature), ',', |
||||
|
'\"KeySignature\":', JSON_QUOTE(T_TP.KeySignature), ',', |
||||
|
'\"PartLetter\":', JSON_QUOTE(T_TP.PartLetter), ',', |
||||
|
'\"ABCNotation\":', JSON_QUOTE(T_TP.ABCNotation), '}' |
||||
|
) |
||||
|
), ']') AS Parts" |
||||
|
]) |
||||
|
->join( |
||||
|
join: 'INNER', |
||||
|
spec: 'TuneParts AS T_TP', |
||||
|
cond: 'T.ID = T_TP.TuneID' |
||||
|
) |
||||
|
->groupBy(spec: [ |
||||
|
'T.ID', |
||||
|
]) |
||||
|
); |
||||
|
|
||||
|
|
||||
|
$tuneDetails = new DatabaseFolkTuneDetails($tuneDetails); |
||||
|
|
||||
|
|
||||
|
header(header: "Content-type: text/text"); |
||||
|
echo $tuneDetails->BuildSimple(); |
||||
|
die(); |
Loading…
Reference in new issue