Knp\Bundle\KnpBundlesBundle\Updater\DeveloperUpdaterPlain::updateDeveloperOrganizations PHP Method

updateDeveloperOrganizations() protected method

protected updateDeveloperOrganizations ( Developer $developer )
$developer Knp\Bundle\KnpBundlesBundle\Entity\Developer
    protected function updateDeveloperOrganizations(EntityDeveloper $developer)
    {
        $organizationsData = $this->githubDeveloper->getOrganizations($developer);
        $developerOrganizations = $developer->getOrganizations();
        $developerOrganizationNames = array();
        foreach ($organizationsData as $organization) {
            $developerOrganizationNames[] = $organization['login'];
        }
        // Add missed organizations
        foreach ($developerOrganizationNames as $organizationName) {
            $isBelongTo = $developerOrganizations->exists(function ($key, $element) use($organizationName) {
                return $organizationName === $element->getName();
            });
            if ($isBelongTo) {
                continue;
            }
            if (!($organizationEntity = $this->organizationRepository->findOneByName($organizationName))) {
                $organizationEntity = $this->githubOrganization->import($organizationName, $update = true, $updateMembers = false);
                $this->entityManager->persist($organizationEntity);
            }
            $developer->addOrganization($organizationEntity);
        }
        // Remove extra organizations
        foreach ($developerOrganizations as $developerOrganization) {
            $extraOrganization = !in_array($developerOrganization->getName(), $developerOrganizationNames, true);
            if ($extraOrganization) {
                $developer->removeOrganization($developerOrganization);
            }
        }
    }