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 public function getByFullName(string $fullname): ?Member
{ {
$memberFullNameParts = explode(" ", $fullname);
$memberFirstName = trim(trim(array_pop($memberFullNameParts)));
$memberLastName = trim(implode(" ", $memberFullNameParts));
return $this->getEntityManager() return $this->getEntityManager()
->createQueryBuilder() ->createQueryBuilder()
->select("e") ->select("e")
->from($this->getBaseEntity(), "e") ->from($this->getBaseEntity(), "e")
->where("e.first_name = :first_name") ->where("concat(e.first_name, ' ', e.last_name) like :full_name")
->andWhere("e.last_name = :last_name") ->setParameter("full_name", '%'.trim($fullname).'%')
->setParameter("first_name",$memberFirstName)
->setParameter("last_name", $memberLastName)
->setMaxResults(1) ->setMaxResults(1)
->getQuery() ->getQuery()
->getOneOrNullResult(); ->getOneOrNullResult();

View File

@ -130,4 +130,30 @@ JSON;
$this->assertTrue($output3 == 'ASCII'); $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);
}
} }