Add public API for \OC\Avatar

This commit is contained in:
kondou 2013-09-20 11:46:11 +02:00
parent 263603aa4c
commit 507325dd50
5 changed files with 122 additions and 2 deletions

55
lib/avatarmanager.php Normal file
View File

@ -0,0 +1,55 @@
<?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();
}
}

View File

@ -24,7 +24,7 @@ class OC_Avatar {
/**
* @brief get the users avatar
* @param $size integer size in px of the avatar, defaults to 64
* @param $size integer size in px of the avatar, avatars are square, defaults to 64
* @return boolean|\OC_Image containing the avatar or false if there's no image
*/
public function get ($size = 64) {

View File

@ -56,7 +56,7 @@ class Server extends SimpleContainer implements IServerContainer {
});
$this->registerService('TagManager', function($c) {
$user = \OC_User::getUser();
return new TagManager($user);
return new Tags($user);
});
$this->registerService('RootFolder', function($c) {
// TODO: get user and user manager from container as well
@ -131,6 +131,9 @@ class Server extends SimpleContainer implements IServerContainer {
$this->registerService('ActivityManager', function($c) {
return new ActivityManager();
});
$this->registerService('AvatarManager', function($c) {
return new AvatarManager(); //TODO AvatarManager needs $user
});
}
/**
@ -160,6 +163,15 @@ class Server extends SimpleContainer implements IServerContainer {
return $this->query('PreviewManager');
}
/**
* Returns the avatar manager, used for avatar functionality
*
* @return \OCP\IAvatar
*/
function getAvatarManager() {
return $this->query('AvatarManager');
}
/**
* Returns the tag manager which can get and set tags for different object types
*
@ -170,6 +182,15 @@ class Server extends SimpleContainer implements IServerContainer {
return $this->query('TagManager');
}
/**
* Returns the avatar manager, used for avatar functionality
*
* @return \OCP\IAvatar
*/
function getAvatarManager() {
return $this->query('AvatarManager');
}
/**
* Returns the root folder of ownCloud's data directory
*

View File

@ -0,0 +1,38 @@
<?php
/**
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
*/
namespace OCP;
/**
* This class provides avatar functionality
*/
interface IAvatarManager {
/**
* @brief get the users avatar
* @param $size integer size in px of the avatar, avatars are square, defaults to 64
* @return boolean|\OC_Image containing the avatar or false if there's no image
*/
function get($size = 64);
/**
* @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();
}

View File

@ -154,4 +154,10 @@ interface IServerContainer {
*/
function getDatabaseConnection();
/**
* @brief Returns an avatar manager, used for avatar functionality
* @return \OCP\IAvatar
*/
function getAvatarManager();
}