Round out Avatar Public API
This commit is contained in:
parent
bcd776b0c0
commit
00071401d7
|
@ -1,55 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later.
|
|
||||||
* See the COPYING-README file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace OC;
|
|
||||||
|
|
||||||
use OCP\IAvatar;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This class implements methods to access Avatar functionality
|
|
||||||
*/
|
|
||||||
class AvatarManager implements IAvatarManager {
|
|
||||||
|
|
||||||
private $avatar;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief constructor
|
|
||||||
* @param $user string user to do avatar-management with
|
|
||||||
*/
|
|
||||||
function __construct($user) {
|
|
||||||
$this->avatar = new \OC\Avatar($user);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief get the users avatar
|
|
||||||
* @param $size integer size in px of the avatar, defaults to 64
|
|
||||||
* @return boolean|\OC_Image containing the avatar or false if there's no image
|
|
||||||
*/
|
|
||||||
function get($size = 64) {
|
|
||||||
$this->avatar->get($size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief sets the users avatar
|
|
||||||
* @param $data mixed imagedata or path to set a new avatar
|
|
||||||
* @throws Exception if the provided file is not a jpg or png image
|
|
||||||
* @throws Exception if the provided image is not valid
|
|
||||||
* @throws \OC\NotSquareException if the image is not square
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function set($data) {
|
|
||||||
$this->avatar->set($data);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief remove the users avatar
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function remove() {
|
|
||||||
$this->avatar->remove();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -10,7 +10,7 @@
|
||||||
* This class gets and sets users avatars.
|
* This class gets and sets users avatars.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class OC_Avatar {
|
class OC_Avatar implements \OCP\IAvatar {
|
||||||
|
|
||||||
private $view;
|
private $view;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OC;
|
||||||
|
|
||||||
|
use OCP\IAvatarManager;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This class implements methods to access Avatar functionality
|
||||||
|
*/
|
||||||
|
class AvatarManager implements IAvatarManager {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief return a user specific instance of \OCP\IAvatar
|
||||||
|
* @see \OCP\IAvatar
|
||||||
|
* @param $user string the ownCloud user id
|
||||||
|
* @return \OCP\IAvatar
|
||||||
|
*/
|
||||||
|
function getAvatar($user) {
|
||||||
|
return new \OC_Avatar($user);
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,25 +14,10 @@ namespace OCP;
|
||||||
interface IAvatarManager {
|
interface IAvatarManager {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief get the users avatar
|
* @brief return a user specific instance of \OCP\IAvatar
|
||||||
* @param $size integer size in px of the avatar, avatars are square, defaults to 64
|
* @see \OCP\IAvatar
|
||||||
* @return boolean|\OC_Image containing the avatar or false if there's no image
|
* @param $user string the ownCloud user id
|
||||||
|
* @return \OCP\IAvatar
|
||||||
*/
|
*/
|
||||||
function get($size = 64);
|
function getAvatar($user);
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief sets the users avatar
|
|
||||||
* @param $data mixed imagedata or path to set a new avatar
|
|
||||||
* @throws Exception if the provided file is not a jpg or png image
|
|
||||||
* @throws Exception if the provided image is not valid
|
|
||||||
* @throws \OCP\NotSquareException if the image is not square
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function set($data);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief remove the users avatar
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
function remove();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,4 +22,19 @@ class Test_Avatar extends PHPUnit_Framework_TestCase {
|
||||||
$avatar->remove();
|
$avatar->remove();
|
||||||
$this->assertEquals(false, $avatar->get());
|
$this->assertEquals(false, $avatar->get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testAvatarApi() {
|
||||||
|
$avatarManager = \OC::$server->getAvatarManager();
|
||||||
|
$avatar = $avatarManager->getAvatar(\OC_User::getUser());
|
||||||
|
|
||||||
|
$this->assertEquals(false, $avatar->get());
|
||||||
|
|
||||||
|
$expected = new OC_Image(\OC::$SERVERROOT.'/tests/data/testavatar.png');
|
||||||
|
$expected->resize(64);
|
||||||
|
$avatar->set($expected->data());
|
||||||
|
$this->assertEquals($expected->data(), $avatar->get()->data());
|
||||||
|
|
||||||
|
$avatar->remove();
|
||||||
|
$this->assertEquals(false, $avatar->get());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue