|
|
|
<?php
|
|
|
|
|
|
|
|
use App\Enumerators\SessionElement;
|
|
|
|
use App\Wrappers\DatabaseInteractions;
|
|
|
|
use App\Wrappers\SessionWrapper;
|
|
|
|
use App\Wrappers\SQLQueryBuilderWrapper;
|
|
|
|
use App\Wrappers\TwigWrapper;
|
|
|
|
|
|
|
|
require_once __DIR__ . "/../../vendor/autoload.php";
|
|
|
|
|
|
|
|
$db = new DatabaseInteractions();
|
|
|
|
|
|
|
|
$tuneDetails = $db->RunOneSelect(
|
|
|
|
queryBuilder: SQLQueryBuilderWrapper::SELECT_ONE(
|
|
|
|
table: 'Tunes',
|
|
|
|
id: $_GET["tune-id"]
|
|
|
|
)
|
|
|
|
->cols(cols: [
|
|
|
|
'SUM(CASE WHEN T_TR.Rating = 1 THEN 1 ELSE 0 END) AS Likes',
|
|
|
|
'SUM(CASE WHEN T_TR.Rating = -1 THEN 1 ELSE 0 END) AS Dislikes',
|
|
|
|
])
|
|
|
|
->join(
|
|
|
|
join: 'LEFT',
|
|
|
|
spec: 'TuneRatings AS T_TR',
|
|
|
|
cond: 'T.ID=T_TR.TuneID',
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
$setsThisTuneIsIn = $db->RunSelect(
|
|
|
|
queryBuilder: SQLQueryBuilderWrapper::SELECT(
|
|
|
|
table: 'TuneSetTunes'
|
|
|
|
)
|
|
|
|
->cols(cols: [
|
|
|
|
'T_TS.ID AS TuneSetID',
|
|
|
|
'T_TS.Description AS TuneSetName',
|
|
|
|
])
|
|
|
|
->join(
|
|
|
|
join: 'INNER',
|
|
|
|
spec: 'TuneSets AS T_TS',
|
|
|
|
cond: 'T.TuneSetID=T_TS.ID',
|
|
|
|
)
|
|
|
|
->where(cond: 'T.TuneID LIKE :__tune_id__')
|
|
|
|
->bindValue(name: '__tune_id__', value: $_GET["tune-id"])
|
|
|
|
->groupBy(spec: [
|
|
|
|
'T.TuneSetID',
|
|
|
|
])
|
|
|
|
);
|
|
|
|
|
|
|
|
$myVote = 0;
|
|
|
|
if(SessionWrapper::Get(SessionElement::IS_LOGGED_IN))
|
|
|
|
{
|
|
|
|
$myVote = $db->RunSelect(
|
|
|
|
queryBuilder: SQLQueryBuilderWrapper::SELECT(
|
|
|
|
table: 'TuneRatings',
|
|
|
|
)
|
|
|
|
->cols(cols: [
|
|
|
|
'Rating'
|
|
|
|
])
|
|
|
|
->where(cond: 'CreatedBy=:__user_id__')
|
|
|
|
->where(cond: 'TuneID=:__tune_id__')
|
|
|
|
->bindValue(name: '__user_id__', value: SessionWrapper::Get(SessionElement::USER_ID))
|
|
|
|
->bindValue(name: '__tune_id__', value: $_GET["tune-id"])
|
|
|
|
);
|
|
|
|
if($myVote == [])
|
|
|
|
$myVote = 0;
|
|
|
|
else
|
|
|
|
{
|
|
|
|
$myVote = $myVote[0]['Rating'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
TwigWrapper::RenderTwig(
|
|
|
|
target: "Pages/tune/uuid.html.twig",
|
|
|
|
arguments: [
|
|
|
|
"TuneDetails"=>$tuneDetails,
|
|
|
|
"SetsThisTuneIsIn" => $setsThisTuneIsIn,
|
|
|
|
"MyVote"=>$myVote,
|
|
|
|
]
|
|
|
|
);
|
|
|
|
|