Refactoring on fullname query

Change-Id: I94e2dbbc7e58a69441c084f708dcd8f9a3330b8d
This commit is contained in:
smarcet 2019-10-01 11:15:58 -03:00
parent 08680e5d46
commit 53d02ddc71
2 changed files with 28 additions and 8 deletions

View File

@ -140,18 +140,12 @@ final class DoctrineMemberRepository
*/
public function getByFullName(string $fullname): ?Member
{
$memberFullNameParts = explode(" ", $fullname);
$memberFirstName = trim(trim(array_pop($memberFullNameParts)));
$memberLastName = trim(implode(" ", $memberFullNameParts));
return $this->getEntityManager()
->createQueryBuilder()
->select("e")
->from($this->getBaseEntity(), "e")
->where("e.first_name = :first_name")
->andWhere("e.last_name = :last_name")
->setParameter("first_name",$memberFirstName)
->setParameter("last_name", $memberLastName)
->where("concat(e.first_name, ' ', e.last_name) like :full_name")
->setParameter("full_name", '%'.trim($fullname).'%')
->setMaxResults(1)
->getQuery()
->getOneOrNullResult();

View File

@ -130,4 +130,30 @@ JSON;
$this->assertTrue($output3 == 'ASCII');
}
public function testIngestSummit(){
$summit = new Summit();
$summit->setActive(true);
// set feed type (sched)
$summit->setApiFeedType(IExternalScheduleFeedFactory::SchedType);
$summit->setApiFeedUrl("");
$summit->setApiFeedKey("");
$summit->setTimeZoneId("America/Chicago");
$summit->setBeginDate(new \DateTime("2019-09-1"));
$summit->setEndDate(new \DateTime("2019-09-30"));
$mainVenue = new SummitVenue();
$mainVenue->setIsMain(true);
$summit->addLocation($mainVenue);
$em = Registry::getManager(SilverstripeBaseModel::EntityManager);
$em->persist($summit);
$em->flush();
$service = App::make(IScheduleIngestionService::class);
$service->ingestSummit($summit);
}
}