Speakers/Moderators Refactoring

Bug Fixing

Change-Id: I1575790a2364a1a05e6098261d8d497d447533ba
This commit is contained in:
smarcet 2019-02-18 17:08:33 -03:00
parent 424e18ff1c
commit 5e61d68a49
4 changed files with 56 additions and 65 deletions

View File

@ -77,7 +77,7 @@ FROM (
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email, R.Email) AS Email
FROM Speaker S
FROM PresentationSpeaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
@ -87,29 +87,13 @@ FROM (
INNER JOIN Presentation P ON E.ID = P.ID
INNER JOIN Presentation_Speakers PS ON PS.PresentationID = P.ID
WHERE E.SummitID = {$summit->getId()} AND PS.PresentationSpeakerID = S.ID
)
)
UNION
SELECT S.ID,
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email, R.Email) AS Email
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
EXISTS
(
SELECT E.ID FROM SummitEvent E
INNER JOIN Presentation P ON E.ID = P.ID
INNER JOIN Presentation_Speakers PS ON PS.PresentationID = P.ID
WHERE E.SummitID = {$summit->getId()} AND P.ModeratorID = S.ID
)
UNION
SELECT S.ID,
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email, R.Email) AS Email
FROM Speaker S
FROM PresentationSpeaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
@ -157,7 +141,7 @@ FROM (
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM Speaker S
FROM PresentationSpeaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN File F ON F.ID = S.PhotoID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
@ -190,39 +174,7 @@ FROM (
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM Speaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
EXISTS
(
SELECT E.ID FROM SummitEvent E
INNER JOIN Presentation P ON E.ID = P.ID
INNER JOIN Presentation_Speakers PS ON PS.PresentationID = P.ID
WHERE E.SummitID = {$summit->getId()} AND P.ModeratorID = S.ID
)
UNION
SELECT
S.ID,
S.ClassName,
S.Created,
S.LastEdited,
S.Title AS SpeakerTitle,
S.Bio,
S.IRCHandle,
S.AvailableForBureau,
S.FundedTravel,
S.Country,
S.MemberID,
S.WillingToTravel,
S.WillingToPresentVideo,
S.Notes,
S.TwitterName,
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM Speaker S
FROM PresentationSpeaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
WHERE
@ -314,7 +266,7 @@ FROM (
IFNULL(S.FirstName, M.FirstName) AS FirstName,
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email
FROM Speaker S
FROM PresentationSpeaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID
)
@ -356,7 +308,7 @@ FROM (
IFNULL(S.LastName, M.Surname) AS LastName,
IFNULL(M.Email,R.Email) AS Email,
S.PhotoID
FROM Speaker S
FROM PresentationSpeaker S
LEFT JOIN Member M ON M.ID = S.MemberID
LEFT JOIN File F ON F.ID = S.PhotoID
LEFT JOIN SpeakerRegistrationRequest R ON R.SpeakerID = S.ID

View File

@ -121,12 +121,9 @@ final class DoctrineSummitEventRepository
'speaker' => new DoctrineFilterMapping
(
"( concat(sp.first_name, ' ', sp.last_name) :operator ':value' ".
"OR concat(spm.first_name, ' ', spm.last_name) :operator ':value' ".
"OR concat(spmm.first_name, ' ', spmm.last_name) :operator ':value' ".
"OR sp.first_name :operator ':value' ".
"OR sp.last_name :operator ':value' ".
"OR spm.first_name :operator ':value' ".
"OR spm.last_name :operator ':value' ".
"OR spmm.first_name :operator ':value' ".
"OR spmm.last_name :operator ':value' )"
),
@ -136,7 +133,7 @@ final class DoctrineSummitEventRepository
),
'speaker_id' => new DoctrineFilterMapping
(
"(sp.id :operator :value OR spm.id :operator :value)"
"(sp.id :operator :value)"
),
'selection_status' => new DoctrineSwitchFilterMapping([
'selected' => new DoctrineCaseFilterMapping(
@ -212,10 +209,10 @@ final class DoctrineSummitEventRepository
if($class == \models\summit\Presentation::class) {
$query = $query->innerJoin("e.category", "cc", Join::WITH);
$query = $query->leftJoin("e.location", "loc", Join::WITH);
$query = $query->leftJoin("e.speakers", "sp", Join::WITH);
$query = $query->leftJoin("e.speakers", "spk", Join::WITH);
$query = $query->leftJoin("spk.speaker", "sp", Join::WITH);
$query = $query->leftJoin('e.selected_presentations', "ssp", Join::LEFT_JOIN);
$query = $query->leftJoin('ssp.list', "sspl", Join::LEFT_JOIN);
$query = $query->leftJoin('e.moderator', "spm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.member', "spmm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.registration_request', "sprr", Join::LEFT_JOIN);
}
@ -307,11 +304,11 @@ final class DoctrineSummitEventRepository
if($class == \models\summit\Presentation::class) {
$query = $query->innerJoin("e.category", "cc", Join::WITH);
$query = $query->leftJoin("e.speakers", "sp", Join::WITH);
$query = $query->leftJoin("e.speakers", "spk", Join::WITH);
$query = $query->leftJoin("sp.speaker", "sp", Join::WITH);
$query = $query->leftJoin('e.selected_presentations', "ssp", Join::LEFT_JOIN);
$query = $query->leftJoin('ssp.list', "sspl", Join::LEFT_JOIN);
$query = $query->leftJoin('e.moderator', "spm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.member', "spmm", Join::LEFT_JOIN);
$query = $query-> leftJoin('sp.member', "spmm", Join::LEFT_JOIN);
$query = $query->leftJoin('sp.registration_request', "sprr", Join::LEFT_JOIN);
}

View File

@ -431,7 +431,7 @@ final class OAuth2SummitApiTest extends ProtectedApiTest
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
$response = $this->action(
"GET",
"OAuth2SummitSpeakersApiController@getAllSpeakers",
"OAuth2SummitSpeakersApiController@getAll",
$params,
array(),
array(),

View File

@ -1351,4 +1351,46 @@ final class OAuth2SummitEventsApiTest extends ProtectedApiTest
}
public function testGetFilteredEvents($summit_id = 25)
{
$params = array
(
'id' => $summit_id ,
'expand' => 'speakers,type',
'filter' => [
'title=@kubernets',
'abstract=@kubernets',
'tags=@kubernets',
'speaker=@kubernets',
'speaker_email=@kubernets',
'id==kubernets'
]
);
$headers = array
(
"HTTP_Authorization" => " Bearer " . $this->access_token,
"CONTENT_TYPE" => "application/json"
);
$response = $this->action
(
"GET",
"OAuth2SummitEventsApiController@getEvents",
$params,
array(),
array(),
array(),
$headers
);
$content = $response->getContent();
$this->assertResponseStatus(200);
$events = json_decode($content);
$this->assertTrue(!is_null($events));
}
}