Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/digital-blueprint/relay-nexus-bundle
WIP
https://github.com/digital-blueprint/relay-nexus-bundle
Last synced: about 2 months ago
JSON representation
WIP
- Host: GitHub
- URL: https://github.com/digital-blueprint/relay-nexus-bundle
- Owner: digital-blueprint
- License: agpl-3.0
- Created: 2024-03-20T14:39:06.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-10-28T03:45:12.000Z (about 2 months ago)
- Last Synced: 2024-10-28T07:13:03.415Z (about 2 months ago)
- Language: PHP
- Homepage: https://packagist.org/packages/dbp/relay-nexus-bundle
- Size: 292 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Relay-API Bundle README Template
================================# DbpRelay{{Name}}Bundle
[GitHub](https://github.com/{{bundle-path}}) |
[Packagist](https://packagist.org/packages/{{package-name}}) |
[Frontend Application](https:/github.com/{{app-path}}) |
[{{Name}} Website](https://mywebsite.org/site/software/{{name}}.html)The {{name}} bundle provides an API for interacting with ...
There is a corresponding frontend application that uses this API at [{{Name}} Frontend Application](https://github.com/{{app-path}}).
## Bundle installation
You can install the bundle directly from [packagist.org](https://packagist.org/packages/{{package-name}}).
```bash
composer require {{package-name}}
```## Integration into the Relay API Server
* Add the bundle to your `config/bundles.php` in front of `DbpRelayCoreBundle`:
```php
...
Dbp\Relay\{{Name}}Bundle\DbpRelay{{Name}}Bundle::class => ['all' => true],
Dbp\Relay\CoreBundle\DbpRelayCoreBundle::class => ['all' => true],
];
```If you were using the [DBP API Server Template](https://packagist.org/packages/dbp/relay-server-template)
as template for your Symfony application, then this should have already been generated for you.* Run `composer install` to clear caches
## Configuration
The bundle has a `database_url` configuration value that you can specify in your
app, either by hard-coding it, or by referencing an environment variable.For this create `config/packages/dbp_relay_{{name}}.yaml` in the app with the following
content:```yaml
dbp_relay_{{name}}:
database_url: 'mysql://db:secret@mariadb:3306/db?serverVersion=mariadb-10.3.30'
# database_url: %env({{NAME}}_DATABASE_URL)%
```If you were using the [DBP API Server Template](https://packagist.org/packages/dbp/relay-server-template)
as template for your Symfony application, then the configuration file should have already been generated for you.For more info on bundle configuration see .
## Development & Testing
* Install dependencies: `composer install`
* Run tests: `composer test`
* Run linters: `composer run lint`
* Run cs-fixer: `composer run cs-fix`## Bundle dependencies
Don't forget you need to pull down your dependencies in your main application if you are installing packages in a bundle.
```bash
# updates and installs dependencies of {{package-name}}
composer update {{package-name}}
```## Scripts
### Database migration
Run this script to migrate the database. Run this script after installation of the bundle and
after every update to adapt the database to the new source code.```bash
php bin/console doctrine:migrations:migrate --em=dbp_relay_{{name}}_bundle
```## Error codes
### `/{{name}}/submissions`
#### POST
| relay:errorId | Status code | Description | relay:errorDetails | Example |
|-------------------------------------|-------------|-------------------------------------------------| ------------------ |----------------------------------|
| `{{name}}:submission-not-created` | 500 | The submission could not be created. | `message` | `['message' => 'Error message']` |
| `{{name}}:submission-invalid-json` | 422 | The dataFeedElement doesn't contain valid json. | `message` | |### `/{{name}}/submissions/{identifier}`
#### GET
| relay:errorId | Status code | Description | relay:errorDetails | Example |
| -------------------------------- | ----------- | ------------------------- | ------------------ | ------- |
| `{{name}}:submission-not-found` | 404 | Submission was not found. | | |## Roles
This bundle needs the role `ROLE_SCOPE_{{NAME}}` assigned to the user to get permissions to fetch data.
To create a new submission entry the Symfony role `ROLE_SCOPE_{{NAME}}-POST` is required.## Events
To extend the behavior of the bundle the following event is registered:
### CreateSubmissionPostEvent
This event allows you to react on submission creations.
You can use this for example to email the submitter of the submission.An event subscriber receives a `Dbp\Relay\{{Name}}Bundle\Event\CreateSubmissionPostEvent` instance
in a service for example in `src/EventSubscriber/CreateSubmissionSubscriber.php`:```php
'onPost',
];
}public function onPost(CreateSubmissionPostEvent $event)
{
$submission = $event->getSubmission();
$dataFeedElement = $submission->getDataFeedElementDecoded();// TODO: extract email address and send email
$email = $dataFeedElement['email'];
}
}
```