]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add public API for \OC\Avatar
authorkondou <kondou@ts.unde.re>
Fri, 20 Sep 2013 09:46:11 +0000 (11:46 +0200)
committerkondou <kondou@ts.unde.re>
Thu, 7 Nov 2013 11:48:40 +0000 (12:48 +0100)
lib/avatarmanager.php [new file with mode: 0644]
lib/private/avatar.php
lib/private/server.php
lib/public/iavatarmanager.php [new file with mode: 0644]
lib/public/iservercontainer.php

diff --git a/lib/avatarmanager.php b/lib/avatarmanager.php
new file mode 100644 (file)
index 0000000..51481e4
--- /dev/null
@@ -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();
+       }
+}
index 720740569df21f5ad5318187ea1b74ea34e1874b..e9b02a7d34c74d07787a90b60f00cbd74171f75e 100644 (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) {
index 65899f3007ee81843da74bb7848de355ff20bf2f..65542d19ab59b681fb959e6e97d5898877b03578 100644 (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
         *
diff --git a/lib/public/iavatarmanager.php b/lib/public/iavatarmanager.php
new file mode 100644 (file)
index 0000000..818dbb1
--- /dev/null
@@ -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();
+}
index 14822817a47506b8099fdb4f431b31c91b0e5bd5..6556b52c3b091c993ccee8bd5dd2941b8f6a82ca 100644 (file)
@@ -154,4 +154,10 @@ interface IServerContainer {
         */
        function getDatabaseConnection();
 
+       /**
+        * @brief Returns an avatar manager, used for avatar functionality
+        * @return \OCP\IAvatar
+        */
+       function getAvatarManager();
+
 }