diff --git a/README.md b/README.md index d89ef9f..dfce8cd 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ [![Build Status](https://travis-ci.org/alphayax/freebox_api_php.svg?branch=master)](https://travis-ci.org/alphayax/freebox_api_php) [![Coverage](https://api.codacy.com/project/badge/Coverage/f3569cf671f04b8ab6d699be3fd011e5)](https://www.codacy.com/app/alphayax/freebox_api_php?utm_source=github.com&utm_medium=referral&utm_content=alphayax/freebox_api_php&utm_campaign=Badge_Coverage) -![codacy](https://api.codacy.com/project/badge/Grade/f3569cf671f04b8ab6d699be3fd011e5) +[![Codacy](https://api.codacy.com/project/badge/Grade/f3569cf671f04b8ab6d699be3fd011e5)](https://www.codacy.com/app/alphayax/freebox_api_php?utm_source=github.com&utm_medium=referral&utm_content=alphayax/freebox_api_php&utm_campaign=Badge_Grade) ![license](https://img.shields.io/packagist/l/alphayax/freebox_api_php.svg) @@ -88,9 +88,9 @@ L'intégralité des fonctionnalités de l'API Freebox (v3) sont implémentées : - BSS - Planning - Mac Filter - - Parental Control - - Filter - - Planning +- Parental Control + - Filter + - Planning ## Utilisation diff --git a/exemple/AirMedia/AirMedia.php b/exemple/AirMedia/AirMedia.php index d7db807..9227b8c 100644 --- a/exemple/AirMedia/AirMedia.php +++ b/exemple/AirMedia/AirMedia.php @@ -1,4 +1,7 @@ authorize(); $App->openSession(); -$AirMediaService = new \alphayax\freebox\api\v3\services\AirMedia\AirMedia( $App); - // AirMedia Config +$AirMediaService = new services\AirMedia\Config( $App); $Configuration = $AirMediaService->getConfiguration(); print_r( $Configuration); // AirMedia Receivers -$Receivers = $AirMediaService->getAirMediaReceivers(); +$AirMediaService = new services\AirMedia\AirMediaReceiver( $App); +$Receivers = $AirMediaService->getAll(); print_r( $Receivers); // AirMedia Request -$Request = new \alphayax\freebox\api\v3\models\AirMedia\AirMediaReceiverRequest(); -$Request->setAction( \alphayax\freebox\api\v3\symbols\AirMedia\Action::START); -$Request->setMediaType( \alphayax\freebox\api\v3\symbols\AirMedia\MediaType::VIDEO); +$Request = new models\AirMedia\AirMediaReceiverRequest(); +$Request->setAction( symbols\AirMedia\Action::START); +$Request->setMediaType( symbols\AirMedia\MediaType::VIDEO); $Request->setMedia( 'http://anon.nasa-global.edgesuite.net/HD_downloads/GRAIL_launch_480.mov'); -$Status = $AirMediaService->sendRequestToAirMediaReceiver( 'Freebox Player', $Request); +$Status = $AirMediaService->sendRequest( 'Freebox Player', $Request); print_r( $Status); diff --git a/exemple/Call/Contact.php b/exemple/Call/Contact.php index 632e3bd..9150b91 100644 --- a/exemple/Call/Contact.php +++ b/exemple/Call/Contact.php @@ -8,27 +8,14 @@ $App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.call', 'PH $App->authorize(); $App->openSession(); -$ContactService = new \alphayax\freebox\api\v3\services\Call\ContactEntry( $App); - +/// Get calls +$ContactService = new \alphayax\freebox\api\v3\services\Call\Contact\ContactEntry( $App); $ContactEntries = $ContactService->getAll(); print_r( $ContactEntries); -/* -$ContactNumber = new \alphayax\freebox\api\v3\models\Call\ContactNumber(); -$ContactNumber->setContactId( 1); -$ContactNumber->setNumber( '0213456789'); -$ContactNumber->setType( \alphayax\freebox\api\v3\symbols\Call\ContactNumberType::HOME); - -$ContactNumber = $ContactService->addContactNumber( $ContactNumber); -print_r( $ContactNumber); - -$ContactNumbers = $ContactService->getContactNumbersFromContactId( 1); -print_r( $ContactNumbers); -*/ - -/* -$ContactAddressService = new \alphayax\freebox\api\v3\services\Call\ContactAddress( $App); +/// Contact Address +$ContactAddressService = new \alphayax\freebox\api\v3\services\Call\Contact\ContactAddress( $App); $ContactAddress = new \alphayax\freebox\api\v3\models\Call\ContactAddress(); $ContactAddress->setContactId( $ContactEntries[0]->getId()); @@ -41,10 +28,10 @@ print_r( $ContactAddressCreated); $ContactAddressDeleted = $ContactAddressService->delete( $ContactAddressCreated); print_r( $ContactAddressDeleted); -*/ -$ContactNumbersService = new \alphayax\freebox\api\v3\services\Call\ContactNumber( $App); +/// Contact number +$ContactNumbersService = new \alphayax\freebox\api\v3\services\Call\Contact\ContactNumber( $App); $Number = new \alphayax\freebox\api\v3\models\Call\ContactNumber(); $Number->setType(\alphayax\freebox\api\v3\symbols\Call\ContactNumberType::HOME); diff --git a/freebox/api/v3/Model.php b/freebox/api/v3/Model.php index 49062c6..d7ebd4c 100644 --- a/freebox/api/v3/Model.php +++ b/freebox/api/v3/Model.php @@ -71,7 +71,7 @@ abstract class Model implements \JsonSerializable { * which is a value of any type other than a resource. * @since 5.4.0 */ - function jsonSerialize() { + public function jsonSerialize() { return $this->toArray(); } diff --git a/freebox/api/v3/services/AirMedia/AirMedia.php b/freebox/api/v3/services/AirMedia/AirMedia.php deleted file mode 100644 index 76a3cb3..0000000 --- a/freebox/api/v3/services/AirMedia/AirMedia.php +++ /dev/null @@ -1,62 +0,0 @@ -getAuthService( self::API_AIRMEDIA_CONFIG); - $rest->GET(); - - return $rest->getResult( models\AirMedia\AirMediaConfig::class); - } - - /** - * @param models\AirMedia\AirMediaConfig $new_AirMediaConfig - * @return models\AirMedia\AirMediaConfig - * @throws \Exception - */ - public function setConfiguration( models\AirMedia\AirMediaConfig $new_AirMediaConfig){ - $rest = $this->getAuthService( self::API_AIRMEDIA_CONFIG); - $rest->PUT( $new_AirMediaConfig); - - return $rest->getResult( models\AirMedia\AirMediaConfig::class); - } - - /** - * Get the list of AirMediaReceiver connected to the Freebox Server - * @return models\AirMedia\AirMediaReceiver[] - */ - public function getAirMediaReceivers(){ - $rest = $this->getAuthService( self::API_AIRMEDIA_RECEIVERS); - $rest->GET(); - - return $rest->getResultAsArray( models\AirMedia\AirMediaReceiver::class); - } - - /** - * @param string $AirMediaReceiver_name - * @param models\AirMedia\AirMediaReceiverRequest $AirMediaReceiverRequest - * @return bool - */ - public function sendRequestToAirMediaReceiver( $AirMediaReceiver_name, models\AirMedia\AirMediaReceiverRequest $AirMediaReceiverRequest){ - $rest = $this->getAuthService( self::API_AIRMEDIA_RECEIVERS . $AirMediaReceiver_name . DIRECTORY_SEPARATOR); - $rest->POST( $AirMediaReceiverRequest); - - return $rest->getSuccess(); - } - -} diff --git a/freebox/api/v3/services/AirMedia/AirMediaReceiver.php b/freebox/api/v3/services/AirMedia/AirMediaReceiver.php new file mode 100644 index 0000000..c15782d --- /dev/null +++ b/freebox/api/v3/services/AirMedia/AirMediaReceiver.php @@ -0,0 +1,39 @@ +getAuthService( self::API_AIRMEDIA_RECEIVERS); + $rest->GET(); + + return $rest->getResultAsArray( models\AirMedia\AirMediaReceiver::class); + } + + /** + * Sending a request to an AirMedia receiver + * @param string $AirMediaReceiverName + * @param models\AirMedia\AirMediaReceiverRequest $AirMediaReceiverRequest + * @return bool + */ + public function sendRequest($AirMediaReceiverName, models\AirMedia\AirMediaReceiverRequest $AirMediaReceiverRequest){ + $rest = $this->getAuthService( self::API_AIRMEDIA_RECEIVERS . $AirMediaReceiverName . DIRECTORY_SEPARATOR); + $rest->POST( $AirMediaReceiverRequest); + + return $rest->getSuccess(); + } + +} diff --git a/freebox/api/v3/services/AirMedia/Config.php b/freebox/api/v3/services/AirMedia/Config.php new file mode 100644 index 0000000..638526f --- /dev/null +++ b/freebox/api/v3/services/AirMedia/Config.php @@ -0,0 +1,37 @@ +getAuthService( self::API_AIRMEDIA_CONFIG); + $rest->GET(); + + return $rest->getResult( models\AirMedia\AirMediaConfig::class); + } + + /** + * Update the AirMedia configuration + * @param models\AirMedia\AirMediaConfig $new_AirMediaConfig + * @return models\AirMedia\AirMediaConfig + */ + public function setConfiguration( models\AirMedia\AirMediaConfig $new_AirMediaConfig){ + $rest = $this->getAuthService( self::API_AIRMEDIA_CONFIG); + $rest->PUT( $new_AirMediaConfig); + + return $rest->getResult( models\AirMedia\AirMediaConfig::class); + } + +} diff --git a/freebox/api/v3/services/Call/ContactAddress.php b/freebox/api/v3/services/Call/Contact/ContactAddress.php similarity index 89% rename from freebox/api/v3/services/Call/ContactAddress.php rename to freebox/api/v3/services/Call/Contact/ContactAddress.php index b627d3b..5682b25 100644 --- a/freebox/api/v3/services/Call/ContactAddress.php +++ b/freebox/api/v3/services/Call/Contact/ContactAddress.php @@ -1,5 +1,5 @@ getAuthService( self::API_CONTACT); @@ -28,6 +28,7 @@ class ContactEntry extends Service { } /** + * Get a specific contact entry * @param int $ContactEntryId * @return models\Call\ContactEntry */ @@ -39,6 +40,7 @@ class ContactEntry extends Service { } /** + * Add a contact entry * @param models\Call\ContactEntry $ContactEntry * @return models\Call\ContactEntry */ @@ -50,6 +52,7 @@ class ContactEntry extends Service { } /** + * Update a contact entry * @param models\Call\ContactEntry $ContactEntry * @return models\Call\ContactEntry */ @@ -61,6 +64,7 @@ class ContactEntry extends Service { } /** + * Remove a contact entry * @param models\Call\ContactEntry $ContactEntry * @return models\Call\ContactEntry */ @@ -69,6 +73,7 @@ class ContactEntry extends Service { } /** + * Remove a contact entry (with the specified id) * @param int $ContactEntryId * @return models\Call\ContactEntry */ @@ -80,6 +85,7 @@ class ContactEntry extends Service { } /** + * Get all numbers associated to a given contact id * @param int $ContactEntryId * @return models\Call\ContactNumber[] */ @@ -92,6 +98,7 @@ class ContactEntry extends Service { } /** + * Get all addresses associated to a given contact id * @param int $ContactEntryId * @return models\Call\ContactAddress[] */ @@ -104,6 +111,7 @@ class ContactEntry extends Service { } /** + * Get all email addresses associated to a given contact id * @param int $ContactEntryId * @return models\Call\ContactEmail[] */ @@ -116,6 +124,7 @@ class ContactEntry extends Service { } /** + * Get all URLs associated to a given contact id * @param int $ContactEntryId * @return models\Call\ContactUrl[] */ diff --git a/freebox/api/v3/services/Call/ContactNumber.php b/freebox/api/v3/services/Call/Contact/ContactNumber.php similarity index 87% rename from freebox/api/v3/services/Call/ContactNumber.php rename to freebox/api/v3/services/Call/Contact/ContactNumber.php index 29f1b5e..a9d4781 100644 --- a/freebox/api/v3/services/Call/ContactNumber.php +++ b/freebox/api/v3/services/Call/Contact/ContactNumber.php @@ -1,5 +1,5 @@