* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category API
- * @package GNUSocial
+ * @package GNUsocial
* @author Hannes Mannerheim <h@nnesmannerhe.im>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://www.gnu.org/software/social/
class ApiCheckNicknameAction extends ApiAction
{
- function prepare($args)
+ protected function prepare(array $args=array())
{
parent::prepare($args);
-
+
+ if ($this->format !== 'json') {
+ $this->clientError('This method currently only serves JSON.', 415);
+ }
+
return true;
}
- function handle($args)
+ protected function handle()
{
- parent::handle($args);
-
+ parent::handle();
+
$nickname = $this->trimmed('nickname');
-
- if ($this->nicknameExists($nickname)) {
+
+ try {
+ Nickname::normalize($nickname, true);
+ $nickname_ok = 1;
+ } catch (NicknameException $e) {
$nickname_ok = 0;
- } else if (!User::allowed_nickname($nickname)) {
- $nickname_ok = 0; }
- else {
- $nickname_ok = 1;
- }
+ }
$this->initDocument('json');
$this->showJsonObjects($nickname_ok);
$this->endDocument('json');
}
-
- function nicknameExists($nickname)
- {
- $user = User::staticGet('nickname', $nickname);
- return is_object($user);
- }
-
}