diff --git a/app/Repositories/Summit/DoctrineMemberRepository.php b/app/Repositories/Summit/DoctrineMemberRepository.php index 3ece1800..6a547fa1 100644 --- a/app/Repositories/Summit/DoctrineMemberRepository.php +++ b/app/Repositories/Summit/DoctrineMemberRepository.php @@ -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(); diff --git a/tests/ExternalFeedIngestionTest.php b/tests/ExternalFeedIngestionTest.php index 6ef2f3f3..a42c73b2 100644 --- a/tests/ExternalFeedIngestionTest.php +++ b/tests/ExternalFeedIngestionTest.php @@ -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); + } } \ No newline at end of file