don't reinsert existing bookmark

This commit is contained in:
Evan Prodromou 2010-12-20 13:38:24 -05:00
parent 15f4e0a9f0
commit 770efece83

View File

@ -116,8 +116,37 @@ class Notice_bookmark extends Memcached_DataObject
return array(false, false, false); return array(false, false, false);
} }
static function getByURL($user, $url)
{
$file = File::staticGet('url', $url);
if (!empty($file)) {
$f2p = new File_to_post();
$f2p->file_id = $file->id;
if ($f2p->find()) {
while ($f2p->fetch()) {
$n = Notice::staticGet('id', $f2p->post_id);
if (!empty($n)) {
if ($n->profile_id == $user->id) {
$nb = Notice_bookmark::staticGet('notice_id', $n->id);
if (!empty($nb)) {
return $nb;
}
}
}
}
}
}
return null;
}
static function saveNew($user, $title, $url, $rawtags, $description, $options=null) static function saveNew($user, $title, $url, $rawtags, $description, $options=null)
{ {
$nb = self::getByURL($user, $url);
if (!empty($nb)) {
throw new ClientException(_('Bookmark already exists.'));
}
if (empty($options)) { if (empty($options)) {
$options = array(); $options = array();
} }