diff --git a/README.md b/README.md index 9745d52..2764d0f 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,12 @@ Implementation PHP de l'API de la freebox (dans sa version 3). ## Prérequis -Ce projet est basé sur **composer**. Pensez à installer les dependences :) +Ce projet est basé sur **composer**. +Pensez à installer les dependences :) ## Fonctionnalités -Jusqu'a présent, les fonctionalités suivantes ont été implémentées : +L'intégralité des fonctionnalités de l'API Freebox (v3) sont implémentées : - AirMedia - Call @@ -93,6 +94,9 @@ Jusqu'a présent, les fonctionalités suivantes ont été implémentées : - BSS - Planning - Mac Filter + - Parental Control + - Filter + - Planning ## Utilisation diff --git a/TODO.md b/TODO.md index 14334b3..54f9c2b 100644 --- a/TODO.md +++ b/TODO.md @@ -39,5 +39,5 @@ - ~~VPN Client [UNSTABLE]~~ - ~~Storage~~ - ~~Storage API [UNSTABLE]~~ -- Parental filter - - Parental Control \ No newline at end of file +- ~~Parental filter~~ + - ~~Parental Control~~ \ No newline at end of file diff --git a/exemple/ParentalControl/Filter.php b/exemple/ParentalControl/Filter.php new file mode 100644 index 0000000..d3332c8 --- /dev/null +++ b/exemple/ParentalControl/Filter.php @@ -0,0 +1,17 @@ +authorize(); +$App->openSession(); + +$FilterService = new \alphayax\freebox\api\v3\services\ParentalControl\Filter( $App); +$Config = $FilterService->getConfiguration(); +print_r( $Config); + +$Filters = $FilterService->getAll(); +print_r( $Filters); + diff --git a/freebox/api/v3/models/ParentalControl/Filter.php b/freebox/api/v3/models/ParentalControl/Filter.php new file mode 100644 index 0000000..b9875e4 --- /dev/null +++ b/freebox/api/v3/models/ParentalControl/Filter.php @@ -0,0 +1,196 @@ +id; + } + + /** + * @return \string[] + */ + public function getMacs() { + return $this->macs; + } + + /** + * @param \string[] $macs + */ + public function setMacs($macs) { + $this->macs = $macs; + } + + /** + * @return \string[] (Read-only) + */ + public function getHosts() { + return $this->hosts; + } + + /** + * @return string + */ + public function getIp() { + return $this->ip; + } + + /** + * @return string + */ + public function getDesc() { + return $this->desc; + } + + /** + * @param string $desc + */ + public function setDesc($desc) { + $this->desc = $desc; + } + + /** + * @return boolean + */ + public function isForced() { + return $this->forced; + } + + /** + * @param boolean $forced + */ + public function setForced($forced) { + $this->forced = $forced; + } + + /** + * @return string + */ + public function getForcedMode() { + return $this->forced_mode; + } + + /** + * @param string $forced_mode + */ + public function setForcedMode($forced_mode) { + $this->forced_mode = $forced_mode; + } + + /** + * @return int + */ + public function getTmpModeExpire() { + return $this->tmp_mode_expire; + } + + /** + * @param int $tmp_mode_expire + */ + public function setTmpModeExpire($tmp_mode_expire) { + $this->tmp_mode_expire = $tmp_mode_expire; + } + + /** + * @return string + */ + public function getTmpMode() { + return $this->tmp_mode; + } + + /** + * @param string $tmp_mode + */ + public function setTmpMode($tmp_mode) { + $this->tmp_mode = $tmp_mode; + } + + /** + * @return string + */ + public function getSchedulingMode() { + return $this->scheduling_mode; + } + + /** + * @return string + */ + public function getFilterState() { + return $this->filter_state; + } + + /** + * @return int + */ + public function getCurrentMappingIdx() { + return $this->current_mapping_idx; + } + + /** + * @return int + */ + public function getNextChange() { + return $this->next_change; + } + +} diff --git a/freebox/api/v3/models/ParentalControl/FilterConfig.php b/freebox/api/v3/models/ParentalControl/FilterConfig.php new file mode 100644 index 0000000..f7b98ae --- /dev/null +++ b/freebox/api/v3/models/ParentalControl/FilterConfig.php @@ -0,0 +1,32 @@ +default_filter_mode; + } + + /** + * @param string $default_filter_mode + */ + public function setDefaultFilterMode($default_filter_mode) { + $this->default_filter_mode = $default_filter_mode; + } + +} diff --git a/freebox/api/v3/models/ParentalControl/FilterPlanning.php b/freebox/api/v3/models/ParentalControl/FilterPlanning.php new file mode 100644 index 0000000..4bf32fb --- /dev/null +++ b/freebox/api/v3/models/ParentalControl/FilterPlanning.php @@ -0,0 +1,59 @@ +resolution; + } + + /** + * @return \string[] + */ + public function getCdayranges() { + return $this->cdayranges; + } + + /** + * @param \string[] $cDayRanges + */ + public function setCdayranges( $cDayRanges) { + $this->cdayranges = $cDayRanges; + } + + /** + * @return \string[] (Read-only) + */ + public function getMapping() { + return $this->mapping; + } + +} diff --git a/freebox/api/v3/services/ParentalControl/Filter.php b/freebox/api/v3/services/ParentalControl/Filter.php new file mode 100644 index 0000000..e606723 --- /dev/null +++ b/freebox/api/v3/services/ParentalControl/Filter.php @@ -0,0 +1,101 @@ +getAuthService( self::API_PARENTAL_CONFIG); + $rest->GET(); + + return $rest->getResult( models\ParentalControl\FilterConfig::class); + } + + /** + * @param models\ParentalControl\FilterConfig $filterConfig + * @return models\ParentalControl\FilterConfig + */ + public function setConfiguration( models\ParentalControl\FilterConfig $filterConfig){ + $rest = $this->getAuthService( self::API_PARENTAL_CONFIG); + $rest->PUT( $filterConfig); + + return $rest->getResult( models\ParentalControl\FilterConfig::class); + } + + /** + * Get the list of disks + * @throws \Exception + * @return models\ParentalControl\Filter[] + */ + public function getAll(){ + $rest = $this->getAuthService( self::API_PARENTAL_FILTER); + $rest->GET(); + + return $rest->getResultAsArray( models\ParentalControl\Filter::class); + } + + /** + * @param int $filterId + * @return models\ParentalControl\Filter + */ + public function getFromId( $filterId){ + $rest = $this->getAuthService( self::API_PARENTAL_FILTER . $filterId); + $rest->GET(); + + return $rest->getResult( models\ParentalControl\Filter::class); + } + + /** + * @param models\ParentalControl\Filter $filter + * @return models\ParentalControl\Filter + */ + public function update( models\ParentalControl\Filter $filter){ + $rest = $this->getAuthService( self::API_PARENTAL_FILTER . $filter->getId()); + $rest->PUT( $filter); + + return $rest->getResult( models\ParentalControl\Filter::class); + } + + /** + * @param models\ParentalControl\Filter $filter + * @return bool + */ + public function delete( models\ParentalControl\Filter $filter){ + return $this->deleteFromId( $filter->getId()); + } + + /** + * @param int $filterId + * @return bool + */ + public function deleteFromId( $filterId){ + $rest = $this->getAuthService( self::API_PARENTAL_FILTER . $filterId); + $rest->DELETE(); + + return $rest->getSuccess(); + } + + /** + * @param models\ParentalControl\Filter $filter + * @return models\ParentalControl\Filter + */ + public function add( models\ParentalControl\Filter $filter){ + $rest = $this->getAuthService( self::API_PARENTAL_FILTER); + $rest->POST( $filter); + + return $rest->getResult( models\ParentalControl\Filter::class); + } +} diff --git a/freebox/api/v3/services/ParentalControl/FilterPlanning.php b/freebox/api/v3/services/ParentalControl/FilterPlanning.php new file mode 100644 index 0000000..8d93011 --- /dev/null +++ b/freebox/api/v3/services/ParentalControl/FilterPlanning.php @@ -0,0 +1,39 @@ +getAuthService( $service); + $rest->GET(); + + return $rest->getResult( models\ParentalControl\FilterPlanning::class); + } + + /** + * @param \alphayax\freebox\api\v3\models\ParentalControl\FilterPlanning $filterPlanning + * @param int $filterId + * @return \alphayax\freebox\api\v3\models\ParentalControl\FilterPlanning + */ + public function setFromFilterId( models\ParentalControl\FilterPlanning $filterPlanning, $filterId) { + $service = sprintf( self::API_PARENTAL_FILTER_PLANNING, $filterId); + $rest = $this->getAuthService( $service); + $rest->PUT( $filterPlanning); + + return $rest->getResult( models\ParentalControl\FilterPlanning::class); + } + +} diff --git a/freebox/api/v3/symbols/ParentalControl/FilterState.php b/freebox/api/v3/symbols/ParentalControl/FilterState.php new file mode 100644 index 0000000..cc249f6 --- /dev/null +++ b/freebox/api/v3/symbols/ParentalControl/FilterState.php @@ -0,0 +1,18 @@ +