Add Storage Disk API + exemple
This commit is contained in:
parent
9448af5219
commit
11432ae276
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
|
||||
/// Require Composer AutoLoader
|
||||
require_once '../../vendor/autoload.php';
|
||||
|
||||
/// Define our application
|
||||
$App = new \alphayax\freebox\utils\Application( 'com.alphayax.freebox.storage', 'PHP API Example (storage)', '1.0.0');
|
||||
$App->authorize();
|
||||
$App->openSession();
|
||||
|
||||
$StorageDiskService = new \alphayax\freebox\api\v3\services\Storage\Disk( $App);
|
||||
$Disks = $StorageDiskService->getAll();
|
||||
print_r( $Disks);
|
||||
|
|
@ -0,0 +1,76 @@
|
|||
<?php
|
||||
namespace alphayax\freebox\api\v3\services\Storage;
|
||||
use alphayax\freebox\api\v3\models;
|
||||
use alphayax\freebox\api\v3\Service;
|
||||
use alphayax\freebox\api\v3\symbols;
|
||||
|
||||
/**
|
||||
* Class Disk
|
||||
* @package alphayax\freebox\api\v3\services\Storage
|
||||
*/
|
||||
class Disk extends Service {
|
||||
|
||||
const API_STORAGE_DISK = '/api/v3/storage/disk/';
|
||||
const API_STORAGE_DISK_FORMAT = '/api/v3/storage/disk/%u/format/';
|
||||
|
||||
/**
|
||||
* Get the list of disks
|
||||
* @throws \Exception
|
||||
* @return models\Storage\StorageDisk[]
|
||||
*/
|
||||
public function getAll(){
|
||||
$rest = $this->getAuthService( self::API_STORAGE_DISK);
|
||||
$rest->GET();
|
||||
|
||||
return $rest->getResultAsArray( models\Storage\StorageDisk::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a given disk info
|
||||
* @param $diskId
|
||||
* @return \alphayax\freebox\api\v3\models\Storage\StorageDisk
|
||||
*/
|
||||
public function getFromId( $diskId){
|
||||
$rest = $this->getAuthService( self::API_STORAGE_DISK . $diskId);
|
||||
$rest->GET();
|
||||
|
||||
return $rest->getResult( models\Storage\StorageDisk::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a disk state
|
||||
* @param \alphayax\freebox\api\v3\models\Storage\StorageDisk $storageDisk
|
||||
* @return \alphayax\freebox\api\v3\models\Storage\StorageDisk
|
||||
*/
|
||||
public function update( models\Storage\StorageDisk $storageDisk){
|
||||
$rest = $this->getAuthService( self::API_STORAGE_DISK . $storageDisk->getId());
|
||||
$rest->PUT( $storageDisk);
|
||||
|
||||
return $rest->getResult( models\Storage\StorageDisk::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Format the disk with the given id
|
||||
* There will be one partition using all the available space on disk. All previous data will be lost.
|
||||
* Parameters will be ignored if you format the Freebox internal disk
|
||||
* @param \alphayax\freebox\api\v3\models\Storage\StorageDisk $storageDisk
|
||||
* @param string $label
|
||||
* @param string $fsType
|
||||
* @param string $tableType
|
||||
* @see symbols\Storage\DiskPartition\FsType
|
||||
* @see symbols\Storage\StorageDisk\TableType
|
||||
* @return bool
|
||||
*/
|
||||
public function format( models\Storage\StorageDisk $storageDisk, $label, $fsType, $tableType){
|
||||
$rest = $this->getAuthService( self::API_STORAGE_DISK . $storageDisk->getId());
|
||||
$rest->PUT([
|
||||
'label' => $label,
|
||||
'fs_type' => $fsType,
|
||||
'table_type' => $tableType,
|
||||
]);
|
||||
|
||||
return $rest->getSuccess();
|
||||
}
|
||||
|
||||
|
||||
}
|
Loading…
Reference in New Issue