1
0
Fork 0

New item functions are now used in the delivery process as well

This commit is contained in:
Michael 2018-06-17 21:35:33 +00:00
commit 23aa9dffa0
3 changed files with 25 additions and 28 deletions

View file

@ -59,14 +59,10 @@ class Delivery extends BaseObject
}
$parent_id = intval($item['parent']);
$itemdata = dba::p("SELECT `item`.*, `contact`.`uid` AS `cuid`,
`sign`.`signed_text`,`sign`.`signature`,`sign`.`signer`
FROM `item`
INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id`
WHERE `item`.`id` IN (?, ?) AND `visible` AND NOT `moderated`
ORDER BY `item`.`id`",
$item_id, $parent_id);
$condition = ['id' => [$item_id, $parent_id], 'visible' => true, 'moderated' => false];
$params = ['order' => ['id']];
$itemdata = Item::select([], $condition, $params);
$items = [];
while ($item = dba::fetch($itemdata)) {
if ($item['id'] == $parent_id) {
@ -79,7 +75,7 @@ class Delivery extends BaseObject
}
dba::close($itemdata);
$uid = $target_item['cuid'];
$uid = $target_item['contact-uid'];
// avoid race condition with deleting entries
if ($items[0]['deleted']) {

View file

@ -10,6 +10,7 @@ use Friendica\Core\Worker;
use Friendica\Database\DBM;
use Friendica\Model\Contact;
use Friendica\Model\Group;
use Friendica\Model\Item;
use Friendica\Model\User;
use Friendica\Model\PushSubscriber;
use Friendica\Network\Probe;
@ -104,27 +105,27 @@ class Notifier {
intval($uid), NETWORK_DFRN, NETWORK_DIASPORA);
} else {
// find ancestors
$target_item = dba::fetch_first("SELECT `item`.*, `contact`.`uid` AS `cuid` FROM `item`
INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`id` = ? AND `visible` AND NOT `moderated`", $item_id);
$condition = ['id' => $item_id, 'visible' => true, 'moderated' => false];
$target_item = Item::selectFirst([], $condition);
if (!DBM::is_result($target_item) || !intval($target_item['parent'])) {
return;
}
$parent_id = intval($target_item['parent']);
$uid = $target_item['cuid'];
$uid = $target_item['contact-uid'];
$updated = $target_item['edited'];
$items = q("SELECT `item`.*, `sign`.`signed_text`,`sign`.`signature`,`sign`.`signer`
FROM `item` LEFT JOIN `sign` ON `sign`.`iid` = `item`.`id` WHERE `parent` = %d AND visible AND NOT moderated ORDER BY `id` ASC",
intval($parent_id)
);
$condition = ['parent' => $parent_id, 'visible' => true, 'moderated' => false];
$params = ['order' => ['id']];
$ret = Item::select([], $condition, $params);
if (!count($items)) {
if (!DBM::is_result($ret)) {
return;
}
$items = dba::inArray($ret);
// avoid race condition with deleting entries
if ($items[0]['deleted']) {
foreach ($items as $item) {