]> git.mxchange.org Git - friendica.git/commitdiff
API: fix itemactivities count
authorfabrixxm <fabrix.xm@gmail.com>
Sat, 2 Jan 2016 11:54:57 +0000 (12:54 +0100)
committerfabrixxm <fabrix.xm@gmail.com>
Sat, 2 Jan 2016 11:54:57 +0000 (12:54 +0100)
api_format_items_likes() has now uses builtin_activity_puller() to correctly count activities

include/api.php

index 762ea6d07bca7eac1efcbab42ba590b43586e52a..2e310ea3e67eb93c1be3700102c237fb11fbca6d 100644 (file)
                        intval($since_id),
                        intval($start), intval($count)
                );
-       
+
                $ret = api_format_items($r,$user_info);
 
                // Set all posts from the query above to seen
         */
        function api_format_items_likes(&$item) {
                $activities = array(
-                       ACTIVITY_LIKE => 'like',
-                       ACTIVITY_DISLIKE => 'dislike',
-                       ACTIVITY_ATTEND => 'attendyes',
-                       ACTIVITY_ATTENDNO => 'attendno',
-                       ACTIVITY_ATTENDMAYBE => 'attendmaybe'
+                       'like' => array(),
+                       'dislike' => array(),
+                       'attendyes' => array(),
+                       'attendno' => array(),
+                       'attendmaybe' => array()
                );
-               $r = q("SELECT verb, count(verb) as n FROM item WHERE parent=%d GROUP BY verb",
-                               intval($item['id']));
+               $items = q('SELECT * FROM item
+                                       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();
-               foreach($r as $row) {
-                       if (x($activities, $row['verb'])) {
-                               $res[$activities[$row['verb']]] = $row['n'];
-                       }
+               $uri = $item['uri'];
+               foreach($activities as $k => $v) {
+                       $res[$k] = (x($v,$uri)?$v[$uri]:0);
                }
+
                return $res;
        }
 
 
        function api_friendica_activity(&$a, $type) {
                if (api_user()===false) throw new ForbiddenException();
-               #$verb = (x($_REQUEST, 'verb') ? strtolower($_REQUEST['verb']) : '');
                $verb = strtolower($a->argv[3]);
+               $verb = preg_replace("|\..*$|", "", $verb);
+
                $id = (x($_REQUEST, 'id') ? $_REQUEST['id'] : 0);
 
                $res = do_like($id, $verb);
                                $ok = "true";
                        else
                                $ok = "ok";
-                       return api_apply_template('test', $type, array("$ok" => $ok));
+                       return api_apply_template('test', $type, array('ok' => $ok));
                } else {
                        throw new BadRequestException('Error adding activity');
                }