|
|
@ -6,28 +6,18 @@ use App\Wrappers\DatabaseInteractions; |
|
|
|
use App\Wrappers\SQLQueryBuilderWrapper; |
|
|
|
|
|
|
|
$tuneDir = __DIR__ . '/../../../LocalStorage/Tunes'; |
|
|
|
$targetTuneID = $_GET['tune-id']; |
|
|
|
$targetTuneVariantID = $_GET['tune-variant-id']; |
|
|
|
|
|
|
|
$db = new DatabaseInteractions(); |
|
|
|
|
|
|
|
$tuneDetails = (new DatabaseInteractions())->RunOneSelect( |
|
|
|
$variantDetails = $db->RunOneSelect( |
|
|
|
queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( |
|
|
|
table: 'Tunes', |
|
|
|
id: $targetTuneID |
|
|
|
) |
|
|
|
->cols(cols: [ |
|
|
|
'T.*', |
|
|
|
]) |
|
|
|
); |
|
|
|
|
|
|
|
$variants = $db->RunOneSelect( |
|
|
|
queryBuilder: SQLQueryBuilderWrapper::SELECT( |
|
|
|
table: 'Tunes' |
|
|
|
table: 'TuneVariants', |
|
|
|
id: $targetTuneVariantID |
|
|
|
) |
|
|
|
->cols([ |
|
|
|
'T.ID AS TuneID', |
|
|
|
'T_TV.ID AS TuneVariantID', |
|
|
|
'T.Title', |
|
|
|
'T.ID AS TuneVariantID', |
|
|
|
'T.TuneID AS TuneID', |
|
|
|
"CONCAT('[', GROUP_CONCAT( |
|
|
|
CONCAT( |
|
|
|
'{\"TimeSignature\":', JSON_QUOTE(T_TVP.TimeSignature), ',', |
|
|
@ -38,27 +28,26 @@ $variants = $db->RunOneSelect( |
|
|
|
]) |
|
|
|
->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' |
|
|
|
spec: 'TuneVariantParts AS T_TVP', |
|
|
|
cond: 'T.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) |
|
|
|
); |
|
|
|
|
|
|
|
$tuneDetails = $db->RunOneSelect( |
|
|
|
queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE( |
|
|
|
table: 'Tunes', |
|
|
|
id: $variantDetails['TuneID'] |
|
|
|
) |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
$tuneDetails = new DatabaseFolkTuneDetails($tuneDetails); |
|
|
|
$tuneDetails->Variants[] = new TuneVariant($tuneDetails, $variants); |
|
|
|
$variantDetails = new TuneVariant($tuneDetails, $variantDetails); |
|
|
|
|
|
|
|
|
|
|
|
header(header: "Content-type: text/text"); |
|
|
|
echo $tuneDetails->Variants[0]->Build(); |
|
|
|
echo $variantDetails->Build(); |
|
|
|
die(); |
|
|
|