Add NetworkShare Config API

This commit is contained in:
alphayax 2016-05-28 13:34:17 +02:00
parent 9349a6b047
commit 029f6b5a43
7 changed files with 295 additions and 1 deletions

View File

@ -55,6 +55,9 @@ Jusqu'a présent, les fonctionalités suivantes ont été implémentées :
- Lan (Core)
- Lan Browser
- Wake On Lan
- Network Share
- Samba
- Afp
- System
- LCD
- NAT

View File

@ -30,7 +30,7 @@
- ~~Incoming port configuration~~
- ~~UPnP IGD~~
- ~~LCD~~
- Network Share
- ~~Network Share~~
- ~~UPnP AV~~
- Switch
- Wi-Fi

View File

@ -0,0 +1,89 @@
<?php
namespace alphayax\freebox\api\v3\models\NetworkShare;
use alphayax\freebox\api\v3\Model;
/**
* Class AfpConfig
* @package alphayax\freebox\api\v3\models\NetworkShare
*/
class AfpConfig extends Model {
/** @var bool : is afp service enabled */
protected $enabled;
/** @var bool : allow guest to access shared files */
protected $guest_allow;
/** @var string : Afp server type (to display proper icon) in MacOS @see ServerType */
protected $server_type;
/** @var string : Afp user name */
protected $login_name;
/** @var string (Write-only) : Afp user password */
protected $login_password;
/**
* @return boolean
*/
public function isEnabled() {
return $this->enabled;
}
/**
* @param boolean $enabled
*/
public function setEnabled( $enabled) {
$this->enabled = $enabled;
}
/**
* @return boolean
*/
public function isGuestAllow() {
return $this->guest_allow;
}
/**
* @param boolean $guest_allow
*/
public function setGuestAllow( $guest_allow) {
$this->guest_allow = $guest_allow;
}
/**
* @return string
*/
public function getServerType() {
return $this->server_type;
}
/**
* @param string $server_type
*/
public function setServerType( $server_type) {
$this->server_type = $server_type;
}
/**
* @return string
*/
public function getLoginName() {
return $this->login_name;
}
/**
* @param string $login_name
*/
public function setLoginName( $login_name) {
$this->login_name = $login_name;
}
/**
* @param string $login_password
*/
public function setLoginPassword( $login_password) {
$this->login_password = $login_password;
}
}

View File

@ -0,0 +1,106 @@
<?php
namespace alphayax\freebox\api\v3\models\NetworkShare;
use alphayax\freebox\api\v3\Model;
/**
* Class SambaConfig
* @package alphayax\freebox\api\v3\models\NetworkShare
*/
class SambaConfig extends Model {
/** @var bool : is file sharing enabled */
protected $file_share_enabled;
/** @var bool : is printer sharing enabled */
protected $print_share_enabled;
/** @var bool : is login/password required to access shares */
protected $logon_enabled;
/** @var string : samba user name */
protected $logon_user;
/** @var string (Write-only) : samba user password */
protected $logon_password;
/** @var string : name of the workgroup */
protected $workgroup;
/**
* @return boolean
*/
public function isFileShareEnabled() {
return $this->file_share_enabled;
}
/**
* @param boolean $file_share_enabled
*/
public function setFileShareEnabled( $file_share_enabled) {
$this->file_share_enabled = $file_share_enabled;
}
/**
* @return boolean
*/
public function isPrintShareEnabled() {
return $this->print_share_enabled;
}
/**
* @param boolean $print_share_enabled
*/
public function setPrintShareEnabled( $print_share_enabled) {
$this->print_share_enabled = $print_share_enabled;
}
/**
* @return boolean
*/
public function isLogonEnabled() {
return $this->logon_enabled;
}
/**
* @param boolean $logon_enabled
*/
public function setLogonEnabled( $logon_enabled) {
$this->logon_enabled = $logon_enabled;
}
/**
* @return string
*/
public function getLogonUser() {
return $this->logon_user;
}
/**
* @param string $logon_user
*/
public function setLogonUser( $logon_user) {
$this->logon_user = $logon_user;
}
/**
* @param string $logon_password
*/
public function setLogonPassword( $logon_password) {
$this->logon_password = $logon_password;
}
/**
* @return string
*/
public function getWorkgroup() {
return $this->workgroup;
}
/**
* @param string $workgroup
*/
public function setWorkgroup( $workgroup) {
$this->workgroup = $workgroup;
}
}

View File

@ -0,0 +1,37 @@
<?php
namespace alphayax\freebox\api\v3\services\config\NetworkShare;
use alphayax\freebox\api\v3\Service;
use alphayax\freebox\api\v3\models;
/**
* Class Afp
* @package alphayax\freebox\api\v3\services\config\NetworkShare
*/
class Afp extends Service {
const API_NETWORK_SHARE_AFP = '/api/v3/netshare/afp/';
/**
* Get the current Afp configuration
* @return \alphayax\freebox\api\v3\models\NetworkShare\AfpConfig
*/
public function getConfiguration(){
$rest = $this->getAuthService( self::API_NETWORK_SHARE_AFP);
$rest->GET();
return new models\NetworkShare\AfpConfig( $rest->getCurlResponse()['result']);
}
/**
* Update the Afp configuration
* @param \alphayax\freebox\api\v3\models\NetworkShare\AfpConfig $afpConfig
* @return \alphayax\freebox\api\v3\models\NetworkShare\AfpConfig
*/
public function setConfiguration( models\NetworkShare\AfpConfig $afpConfig){
$rest = $this->getAuthService( self::API_NETWORK_SHARE_AFP);
$rest->PUT( $afpConfig->toArray());
return new models\NetworkShare\AfpConfig( $rest->getCurlResponse()['result']);
}
}

View File

@ -0,0 +1,37 @@
<?php
namespace alphayax\freebox\api\v3\services\config\NetworkShare;
use alphayax\freebox\api\v3\Service;
use alphayax\freebox\api\v3\models;
/**
* Class Samba
* @package alphayax\freebox\api\v3\services\config\NetworkShare
*/
class Samba extends Service {
const API_NETWORK_SHARE_SAMBA = '/api/v3/netshare/samba/';
/**
* Get the current Samba configuration
* @return \alphayax\freebox\api\v3\models\NetworkShare\SambaConfig
*/
public function getConfiguration(){
$rest = $this->getAuthService( self::API_NETWORK_SHARE_SAMBA);
$rest->GET();
return new models\NetworkShare\SambaConfig( $rest->getCurlResponse()['result']);
}
/**
* Update the Samba configuration
* @param \alphayax\freebox\api\v3\models\NetworkShare\SambaConfig $sambaConfig
* @return \alphayax\freebox\api\v3\models\NetworkShare\SambaConfig
*/
public function setConfiguration( models\NetworkShare\SambaConfig $sambaConfig){
$rest = $this->getAuthService( self::API_NETWORK_SHARE_SAMBA);
$rest->PUT( $sambaConfig->toArray());
return new models\NetworkShare\SambaConfig( $rest->getCurlResponse()['result']);
}
}

View File

@ -0,0 +1,22 @@
<?php
namespace alphayax\freebox\api\v3\symbols\NetworkShare\AfpConfig;
/**
* Symbol ServerType
* @package alphayax\freebox\api\v3\symbols\NetworkShare\AfpConfig
* @see alphayax\freebox\api\v3\models\NetworkShare\AfpConfig
*/
interface ServerType {
const POWERBOOK = 'powerbook';
const POWERMAC = 'powermac';
const MACMINI = 'macmini';
const IMAC = 'imac';
const MACBOOK = 'macbook';
const MACBOOK_PRO = 'macbookpro';
const MACBOOK_AIR = 'macbookair';
const MAC_PRO = 'macpro';
const APPLE_TV = 'appletv';
const AIR_PORT = 'airport';
const XSERVE = 'xserve';
}