https://github.com/openclassrooms/frontdesk
https://github.com/openclassrooms/frontdesk
Last synced: 9 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/openclassrooms/frontdesk
- Owner: OpenClassrooms
- License: mit
- Created: 2016-09-29T08:32:22.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-11-20T16:01:23.000Z (over 8 years ago)
- Last Synced: 2025-03-01T14:46:43.385Z (about 1 year ago)
- Language: PHP
- Size: 150 KB
- Stars: 1
- Watchers: 28
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://travis-ci.org/OpenClassrooms/FrontDesk)
[](https://insight.sensiolabs.com/projects/a938d1ba-3c55-43a9-b6a6-0f9612c526d9)
[](https://coveralls.io/github/OpenClassrooms/FrontDesk)
# FrontDesk
This is a PHP5 library that provides [FrontDesk Core API](https://developer.frontdeskhq.com/docs/api/v2) functionality in your application.
## Install
The easiest way to install FrontDesk Library is via [composer](http://getcomposer.org/).
Create the following `composer.json` file and run the `php composer.phar install` command to install it.
```json
{
"require": {
"openclassrooms/front-desk": "*"
}
}
```
```php
createCoreApi('your_front_desk_server_name', 'your_token');
\\
$client = $factory->createReportingApi('your_front_desk_server_name', 'your_token');
```
## ENDPOINTS
### ENROLLMENT
#### Gateway
```php
use OpenClassrooms\FrontDesk\Repository\PackRepository;
$enrollmentGateway = new EnrollmentRepository();
$enrollmentGateway->setReportingApiClient($client);
```
#### Services
##### Services Instanciation
```php
use OpenClassrooms\FrontDesk\Services\Impl\EnrollmentServiceImpl;
$service = new EnrollmentServiceImpl();
$service->setEnrollmentGateway($enrollmentGateway);
```
##### Create Query
```php
...
$service->query($field, $filter, $limit);
```
### PACK
#### Gateway
```php
use OpenClassrooms\FrontDesk\Repository\PackRepository;
$packGateway = new PackRepository();
$packGateway->setCoreApiClient($client);
```
#### Builder
```php
use OpenClassrooms\FrontDesk\Models\PersonBuilder;
$pack = $packBuilder
->create()
->withCount(5)
->withEndDate(new \DateTime())
->withPersonIds([21987])
->withStartDate(new \DateTime())
->build();
```
#### Services
##### Services Instanciation
```php
use OpenClassrooms\FrontDesk\Services\Impl\PackServiceImpl;
$service = new PackServiceImpl();
$service->setPackGateway($packGateway);
```
##### Create Pack
```php
...
$service->create($pack, $packProductId);
```
##### Delete Pack by id
```php
...
$service->deletePack($packId);
```
### PERSON
#### Gateway
```php
use OpenClassrooms\FrontDesk\Repository\PersonRepository;
$personGateway = new PersonRepository();
$personGateway->setCoreApiClient($client);
$personGateway->setPersonBuilder(new PersonBuilderImpl());
```
#### Builder
The library provides a builder to create a Person:
```php
use OpenClassrooms\FrontDesk\Models\PersonBuilder;
$person = $personBuilder->create()
->withAddress('address')
->withEmail('email')
->withFirstName('first_name')
->withJoinedAt(new \DateTime())
->withLastName('last_name')
...
->build();
```
#### Services
##### Services Instanciation
```php
use OpenClassrooms\FrontDesk\Services\Impl\PersonServiceImpl;
$service = new PersonServiceImpl();
$service->setPersonGateway($personGateway);
```
##### Post a person
```php
$service->create($person);
```
##### Put a person
```php
$service->update($person);
```
##### Get person by id
```php
$service->find($personId);
```
##### Get all the people
```php
$service->findAll($page);
```
##### Search person by query
```php
$service->search($query);
```
### PLAN
#### Gateway
##### Gateway
The library provides Gateway for a person, a pack, a plan and a visit:
```php
$planGateway = new PlanRepository();
$planGateway->setCoreApiClient($client);
$planGateway->setPlanBuilder(new PlanBuilderImpl());
```
#### Services
##### Services Instanciation
```php
$service = new PlanServiceImpl();
$service->setPlanGateway($planGateway);
```
##### Get Plans by person id
```php
$service->getPlans($personId);
```
### VISIT
#### Gateway
```php
use OpenClassrooms\FrontDesk\Repository\VisitRepository;
$visitGateway = new VisitRepository();
$visitGateway->setCoreApiClient($client);
$visitGateway->setVisitBuilder(new VisitBuilderImpl());
```
#### Services
##### Services Instanciation
```php
$service = new VisitServiceImpl();
$service->setVisitGateway($visitGateway);
```
##### Get Visit by person id
```php
$service->getVisits($personId, $from, $to);
```
##### Delete Visit by id
```php
$service->deleteVisit($visitId);
```