Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Helper;
6
 
7
use Laminas\View\Helper\AbstractHelper;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use LeadersLinked\Mapper\ConnectionMapper;
10
use LeadersLinked\Mapper\QueryMapper;
11
use LeadersLinked\Mapper\UserMapper;
12
use LeadersLinked\Model\User;
13
use Laminas\Db\Sql\Expression;
14
 
15
class PeopleYouMayKnowHelper extends AbstractHelper
16
{
17
 
18
    /**
19
     *
20
     * @var AdapterInterface
21
     */
22
    private $adapter;
23
 
24
 
25
    /**
26
     *
27
     * @param AdapterInterface $adapter
28
     */
29
    public function __construct($adapter)
30
    {
31
        $this->adapter      = $adapter;
32
    }
33
 
34
    public function __invoke($user_id)
35
    {
36
        $connectionMapper = ConnectionMapper::getInstance($this->adapter);
37
        $first_degree_connections_ids = $connectionMapper->fetchAllConnectionsByUserReturnIds($user_id);
38
        $first_degree_connections_ids = $first_degree_connections_ids ? $first_degree_connections_ids : [0];
39
 
40
        $second_degree_connections_ids = $connectionMapper->fetchAllSecondDegreeConnectionsForUserIdReturnIds($user_id);
41
        $second_degree_connections_ids = $second_degree_connections_ids ? $second_degree_connections_ids : [0];
42
 
43
 
44
        $items = [];
45
        if($first_degree_connections_ids && $second_degree_connections_ids) {
46
            $queryMapper = QueryMapper::getInstance($this->adapter);
47
            $select = $queryMapper->getSql()->select();
48
            $select->columns(['id', 'uuid', 'first_name','last_name', 'image']);
49
            $select->from(['u' => UserMapper::_TABLE]);
50
            $select->where->in('u.id', $second_degree_connections_ids);
51
            $select->where->notIn('u.id', $first_degree_connections_ids);
52
            $select->where->notEqualTo('u.id', $user_id);
53
            $select->where->equalTo('u.status', User::STATUS_ACTIVE);
54
            $select->group('u.id');
55
 
56
            $select->order(['last_name','first_name']);
57
 
58
            $items = $queryMapper->fetchAll($select);
59
        }
60
 
61
        return $this->getView()->render('helpers/people-you-may-know.phtml', ['items' => $items]);
62
    }
63
}