API: fix itemactivities count

api_format_items_likes() has now uses builtin_activity_puller() to correctly count activities
This commit is contained in:
fabrixxm 2016-01-02 12:54:57 +01:00
parent 5758302f21
commit 20809cf725
1 changed files with 20 additions and 14 deletions

View File

@ -1336,7 +1336,7 @@
intval($since_id), intval($since_id),
intval($start), intval($count) intval($start), intval($count)
); );
$ret = api_format_items($r,$user_info); $ret = api_format_items($r,$user_info);
// Set all posts from the query above to seen // Set all posts from the query above to seen
@ -2277,21 +2277,26 @@
*/ */
function api_format_items_likes(&$item) { function api_format_items_likes(&$item) {
$activities = array( $activities = array(
ACTIVITY_LIKE => 'like', 'like' => array(),
ACTIVITY_DISLIKE => 'dislike', 'dislike' => array(),
ACTIVITY_ATTEND => 'attendyes', 'attendyes' => array(),
ACTIVITY_ATTENDNO => 'attendno', 'attendno' => array(),
ACTIVITY_ATTENDMAYBE => 'attendmaybe' 'attendmaybe' => array()
); );
$r = q("SELECT verb, count(verb) as n FROM item WHERE parent=%d GROUP BY verb", $items = q('SELECT * FROM item
intval($item['id'])); WHERE uid=%d AND `thr-parent`="%s" AND visible AND NOT deleted',
intval($item['uid']),
dbesc($item['uri']));
foreach ($items as $i){
builtin_activity_puller($i, $activities);
}
$res = array(); $res = array();
foreach($r as $row) { $uri = $item['uri'];
if (x($activities, $row['verb'])) { foreach($activities as $k => $v) {
$res[$activities[$row['verb']]] = $row['n']; $res[$k] = (x($v,$uri)?$v[$uri]:0);
}
} }
return $res; return $res;
} }
@ -3395,8 +3400,9 @@
function api_friendica_activity(&$a, $type) { function api_friendica_activity(&$a, $type) {
if (api_user()===false) throw new ForbiddenException(); if (api_user()===false) throw new ForbiddenException();
#$verb = (x($_REQUEST, 'verb') ? strtolower($_REQUEST['verb']) : '');
$verb = strtolower($a->argv[3]); $verb = strtolower($a->argv[3]);
$verb = preg_replace("|\..*$|", "", $verb);
$id = (x($_REQUEST, 'id') ? $_REQUEST['id'] : 0); $id = (x($_REQUEST, 'id') ? $_REQUEST['id'] : 0);
$res = do_like($id, $verb); $res = do_like($id, $verb);
@ -3406,7 +3412,7 @@
$ok = "true"; $ok = "true";
else else
$ok = "ok"; $ok = "ok";
return api_apply_template('test', $type, array("$ok" => $ok)); return api_apply_template('test', $type, array('ok' => $ok));
} else { } else {
throw new BadRequestException('Error adding activity'); throw new BadRequestException('Error adding activity');
} }