dbp/relay-base-organization-bundle

v0.2.13 2024-05-23 09:32 UTC

README

GitHub | Packagist

Test

Integration into the Relay API Server

  • Add the bundle package as a dependency:
composer require dbp/relay-base-organization-bundle
  • Add the bundle to your config/bundles.php in front of DbpRelayCoreBundle:
...
Dbp\Relay\BaseOrganizationBundle\DbpRelayBaseOrganizationBundle::class => ['all' => true],
Dbp\Relay\CoreBundle\DbpRelayCoreBundle => ['all' => true],
];
  • Run composer install to clear caches

OrganizationProvider service

For services that need to fetch organizations you need to create a service that implements OrganizationProviderInterface in your application.

Example

Service class

You can for example put below code into src/Service/OrganizationProvider.php:

<?php

declare(strict_types=1);

namespace YourUniversity\Service;

use Dbp\Relay\BaseOrganizationBundle\API\OrganizationProviderInterface;
use Dbp\Relay\BaseOrganizationBundle\Entity\Organization;

class OrganizationProvider implements OrganizationProviderInterface
{
    public function getOrganizationById(string $identifier, string $lang): Organization
    {
        return some_method_that_fetches_an_organization_by_id($identifier, $lang);
    }

    /**
     * @return Organization[]
     */
    public function getOrganizationsByPerson(Person $person, string $context, string $lang): array
    {
        return some_method_that_fetches_an_organization_by_person($person, $context, $lang);
    }

    /**
     * @return Organization[]
     */
    public function getOrganizations(string $lang): array
    {
        return some_method_that_fetches_all_organizations($lang);
    }
}

Services configuration

For above class you need to add this to your src/Resources/config/services.yaml:

  Dbp\Relay\BaseOrganizationBundle\API\OrganizationProviderInterface:
    '@YourUniversity\Service\OrganizationProvider'