Notice->getParent code reuse
...not entirely sure whether to allow getParent calls on Notice objects which have not been created, but we'll leave that in for now...
This commit is contained in:
parent
6b9a8b7b19
commit
c84b21008e
|
@ -2762,13 +2762,10 @@ class Notice extends Managed_DataObject
|
||||||
|
|
||||||
public function getParent()
|
public function getParent()
|
||||||
{
|
{
|
||||||
$parent = Notice::getKV('id', $this->reply_to);
|
if (empty($this->reply_to)) {
|
||||||
|
throw new NoParentNoticeException($this);
|
||||||
if (!$parent instanceof Notice) {
|
|
||||||
throw new ServerException('Notice has no parent');
|
|
||||||
}
|
}
|
||||||
|
return self::getById($this->reply_to);
|
||||||
return $parent;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
41
lib/noparentnoticeexception.php
Normal file
41
lib/noparentnoticeexception.php
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* StatusNet, the distributed open-source microblogging tool
|
||||||
|
*
|
||||||
|
* Class for an exception when a database lookup returns no results
|
||||||
|
*
|
||||||
|
* PHP version 5
|
||||||
|
*
|
||||||
|
* LICENCE: This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU Affero General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU Affero General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Affero General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*
|
||||||
|
* @category Exception
|
||||||
|
* @package GNUsocial
|
||||||
|
* @author Mikael Nordfeldth <mmn@hethane.se>
|
||||||
|
* @copyright 2013 Free Software Foundation, Inc.
|
||||||
|
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
|
||||||
|
* @link http://www.gnu.org/software/social/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!defined('GNUSOCIAL')) { exit(1); }
|
||||||
|
|
||||||
|
class NoParentNoticeException extends ServerException
|
||||||
|
{
|
||||||
|
public $notice; // The notice which has no parent
|
||||||
|
|
||||||
|
public function __construct(Notice $notice)
|
||||||
|
{
|
||||||
|
$this->notice = $notice;
|
||||||
|
parent::__construct(sprintf(_('No parent for notice with ID "%s".'), $this->notice->id));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user