We want to build a service which will take a request.json
and:
- Process the file and create two separate collections for
Fruits
andVegetables
- Each collection has methods like
add()
,remove()
,list()
; - Units have to be stored as grams;
- Store the collections in a storage engine of your choice. (e.g. Database, In-memory)
- Provide an API endpoint to query the collections. As a bonus, this endpoint can accept filters to be applied to the returning collection.
- Provide another API endpoint to add new items to the collections (i.e., your storage engine).
- As a bonus you might:
-
consider giving an option to decide which units are returned (kilograms/grams);
-
how to implement
search()
method collections; -
use latest version of Symfony's to embed your logic
-
Provide API documentation
- use https://editor.swagger.io/ to read generated openapi.json file via command
console nelmio:apidoc:dump > openapi.json
- use https://editor.swagger.io/ to read generated openapi.json file via command
-
You have two ways of moving on:
- You call the Service from PHPUnit test like it's done in dummy test (just run
bin/phpunit
from the console)
or
- You create a Controller which will be calling the service with a json payload
- Keep KISS, DRY, YAGNI, SOLID principles in mind
- Timebox your work - we expect that you would spend between 3 and 4 hours.
- Your code should be tested
- static tests: phpcs + phpstan
- unit/integration/functional tests
- all tests are added as github action jobs
- Please upload your code to a public git repository (i.e. GitHub, Gitlab)