From 705099d77a3329f793991368e5d631a1491efa1b Mon Sep 17 00:00:00 2001 From: alphayax Date: Wed, 8 Jun 2016 19:53:41 +0200 Subject: [PATCH] Add Wifi MacFilter API Finalize Wifi API --- README.md | 1 + TODO.md | 4 +- freebox/api/v3/models/WiFi/MacFilter.php | 100 ++++++++++++++++++ .../api/v3/services/config/WiFi/MacFilter.php | 79 ++++++++++++++ .../api/v3/symbols/WiFi/MacFilter/Type.php | 16 +++ 5 files changed, 198 insertions(+), 2 deletions(-) create mode 100644 freebox/api/v3/models/WiFi/MacFilter.php create mode 100644 freebox/api/v3/services/config/WiFi/MacFilter.php create mode 100644 freebox/api/v3/symbols/WiFi/MacFilter/Type.php diff --git a/README.md b/README.md index bc428dc..3f39153 100644 --- a/README.md +++ b/README.md @@ -89,6 +89,7 @@ Jusqu'a présent, les fonctionalités suivantes ont été implémentées : - Channel Usage - BSS - Planning + - Mac Filter ## Utilisation diff --git a/TODO.md b/TODO.md index 786a475..ac2733e 100644 --- a/TODO.md +++ b/TODO.md @@ -18,7 +18,7 @@ - ~~Calls / Contacts~~ - ~~Call~~ - ~~Contacts~~ -- Configuration +- ~~Configuration~~ - ~~Connection API~~ - ~~Lan~~ - ~~Lan Browser~~ @@ -33,7 +33,7 @@ - ~~Network Share~~ - ~~UPnP AV~~ - ~~Switch~~ - - Wi-Fi + - ~~Wi-Fi~~ - ~~System~~ - ~~VPN Server [UNSTABLE]~~ - ~~VPN Client [UNSTABLE]~~ diff --git a/freebox/api/v3/models/WiFi/MacFilter.php b/freebox/api/v3/models/WiFi/MacFilter.php new file mode 100644 index 0000000..8d49b9a --- /dev/null +++ b/freebox/api/v3/models/WiFi/MacFilter.php @@ -0,0 +1,100 @@ +initProperty( 'host', models\LAN\LanHost::class); + } + + /** + * @return string + */ + public function getId() { + return $this->id; + } + + /** + * @return string + */ + public function getMac() { + return $this->mac; + } + + /** + * @return string + */ + public function getComment() { + return $this->comment; + } + + /** + * @param string $comment + */ + public function setComment($comment) { + $this->comment = $comment; + } + + /** + * @return string + * @see alphayax\freebox\api\v3\symbols\WiFi\MacFilter\Type + */ + public function getType() { + return $this->type; + } + + /** + * @param string $type + * @see alphayax\freebox\api\v3\symbols\WiFi\MacFilter\Type + */ + public function setType($type) { + $this->type = $type; + } + + /** + * @return string + */ + public function getHostname() { + return $this->hostname; + } + + /** + * @return models\LAN\LanHost + */ + public function getHost() { + return $this->host; + } + +} diff --git a/freebox/api/v3/services/config/WiFi/MacFilter.php b/freebox/api/v3/services/config/WiFi/MacFilter.php new file mode 100644 index 0000000..bd96a94 --- /dev/null +++ b/freebox/api/v3/services/config/WiFi/MacFilter.php @@ -0,0 +1,79 @@ +getAuthService( self::API_WIFI_MAC_FILTER); + $rest->GET(); + + return $rest->getResultAsArray( models\WiFi\MacFilter::class); + } + + /** + * @param $MacFilterId + * @return models\WiFi\MacFilter + */ + public function getFromId( $MacFilterId){ + $rest = $this->getAuthService( self::API_WIFI_MAC_FILTER . $MacFilterId); + $rest->GET(); + + return $rest->getResult( models\WiFi\MacFilter::class); + } + + /** + * @param \alphayax\freebox\api\v3\models\WiFi\MacFilter $MacFilter + * @return \alphayax\freebox\api\v3\models\WiFi\MacFilter + */ + public function update( models\WiFi\MacFilter $MacFilter){ + $rest = $this->getAuthService( self::API_WIFI_MAC_FILTER . $MacFilter->getId()); + $rest->PUT( $MacFilter); + + return $rest->getResult( models\WiFi\MacFilter::class); + } + + /** + * @param \alphayax\freebox\api\v3\models\WiFi\MacFilter $MacFilter + * @return \alphayax\freebox\api\v3\models\WiFi\MacFilter + */ + public function delete( models\WiFi\MacFilter $MacFilter){ + $rest = $this->getAuthService( self::API_WIFI_MAC_FILTER . $MacFilter->getId()); + $rest->PUT( $MacFilter); + + return $rest->getResult( models\WiFi\MacFilter::class); + } + + /** + * @param $MacFilterId + * @return \alphayax\freebox\api\v3\models\WiFi\MacFilter + */ + public function deleteFromId( $MacFilterId){ + $rest = $this->getAuthService( self::API_WIFI_MAC_FILTER . $MacFilterId); + $rest->DELETE(); + + return $rest->getSuccess(); + } + + /** + * @param \alphayax\freebox\api\v3\models\WiFi\MacFilter $MacFilter + * @return \alphayax\freebox\api\v3\models\WiFi\MacFilter + */ + public function add( models\WiFi\MacFilter $MacFilter){ + $rest = $this->getAuthService( self::API_WIFI_MAC_FILTER); + $rest->POST( $MacFilter); + + return $rest->getResult( models\WiFi\MacFilter::class); + } + +} diff --git a/freebox/api/v3/symbols/WiFi/MacFilter/Type.php b/freebox/api/v3/symbols/WiFi/MacFilter/Type.php new file mode 100644 index 0000000..e4e3bdf --- /dev/null +++ b/freebox/api/v3/symbols/WiFi/MacFilter/Type.php @@ -0,0 +1,16 @@ +