Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
9921 nelberth 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Controller;
5
 
6
use Laminas\Authentication\AuthenticationService;
7
use Laminas\Authentication\Result as AuthResult;
8
use Laminas\Db\Adapter\AdapterInterface;
9
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
10
use Laminas\Mvc\Controller\AbstractActionController;
11
use Laminas\Mvc\I18n\Translator;
12
use Laminas\Log\LoggerInterface;
13
use Laminas\View\Model\ViewModel;
14
use Laminas\View\Model\JsonModel;
15
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
9931 nelberth 16
use LeadersLinked\Form\CreateFeedForm;
17
use LeadersLinked\Library\Functions;
18
use LeadersLinked\Mapper\UserMapper;
9921 nelberth 19
 
9931 nelberth 20
use LeadersLinked\Mapper\CompanyMapper;
21
use LeadersLinked\Mapper\TopicMapper;
22
use LeadersLinked\Model\Feed;
23
use LeadersLinked\Mapper\FeedMapper;
24
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMapper;
25
use LeadersLinked\Model\HighPerformanceTeamsGroupsMembers;
26
use LeadersLinked\Form\HighPerformanceTeamsGroupsMembersForm;
27
use LeadersLinked\Mapper\HighPerformanceTeamsGroupsMembersMapper;
28
 
9921 nelberth 29
class HighPerformanceTeamsGroupsViewForoArticlesViewController extends AbstractActionController
30
{
31
    /**
32
     *
33
     * @var AdapterInterface
34
     */
35
    private $adapter;
36
 
37
 
38
    /**
39
     *
40
     * @var AbstractAdapter
41
     */
42
    private $cache;
43
 
44
    /**
45
     *
46
     * @var  LoggerInterface
47
     */
48
    private $logger;
49
 
50
    /**
51
     *
52
     * @var array
53
     */
54
    private $config;
55
 
56
 
57
 
58
    /**
59
     *
60
     * @param AdapterInterface $adapter
61
     * @param AbstractAdapter $cache
62
     * @param LoggerInterface $logger
63
     * @param array $config
64
     */
65
    public function __construct($adapter, $cache , $logger, $config)
66
    {
67
        $this->adapter      = $adapter;
68
        $this->cache        = $cache;
69
        $this->logger       = $logger;
70
        $this->config       = $config;
71
 
72
 
73
    }
74
 
75
    public function indexAction()
76
    {
9932 nelberth 77
 
78
        $currentUserPlugin = $this->plugin('currentUserPlugin');
79
        $currentUser = $currentUserPlugin->getUser();
80
        $currentCompany = $currentUserPlugin->getCompany();
9931 nelberth 81
        $group_uuid =  $this->params()->fromRoute('group_uuid');
82
        $category_uuid =  $this->params()->fromRoute('category_uuid');
83
        $article_uuid =  $this->params()->fromRoute('article_uuid');
9932 nelberth 84
        $request = $this->getRequest();
10121 nelberth 85
 
9931 nelberth 86
        if(!$group_uuid) {
87
            $data = [
88
                'success'   => false,
89
                'data'   => 'ERROR_INVALID_PARAMETER'
90
            ];
91
 
92
            return new JsonModel($data);
93
        }
94
 
95
        if(!$category_uuid) {
96
            $data = [
97
                'success'   => false,
98
                'data'   => 'ERROR_INVALID_PARAMETER'
99
            ];
100
 
101
            return new JsonModel($data);
102
        }
103
 
104
        $highPerformanceTeamsGroupsMapper = HighPerformanceTeamsGroupsMapper::getInstance($this->adapter);
105
        $highPerformanceTeamsGroups = $highPerformanceTeamsGroupsMapper->fetchOneByUuid($group_uuid);
106
 
107
        if (!$highPerformanceTeamsGroups) {
108
            $data = [
109
                'success' => false,
110
                'data' => 'ERROR_RECORD_NOT_FOUND'
111
            ];
112
 
113
            return new JsonModel($data);
114
        }
115
 
116
        $highPerformanceTeamsGroupsMemberMapper = HighPerformanceTeamsGroupsMembersMapper::getInstance($this->adapter);
117
        $highPerformanceTeamsGroupsMember = $highPerformanceTeamsGroupsMemberMapper->fetchOneByGroupIdAndUserId($highPerformanceTeamsGroups->id, $currentUser->id);
118
        if(!$highPerformanceTeamsGroupsMember) {
119
            return new JsonModel([
120
                'success' => false,
121
                'data' => 'ERROR_RECORD_NOT_FOUND'
122
            ]);
123
        }
124
        if(!($highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ACCEPTED || $highPerformanceTeamsGroupsMember->status == HighPerformanceTeamsGroupsMembers::STATUS_ADDED_BY_ADMIN) ){
125
            return new JsonModel([
126
                'success' => false,
127
                'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS'
128
            ]);
129
        }
130
 
131
 
9921 nelberth 132
        if($request->isGet()) {
9931 nelberth 133
            $formAdd = new CreateFeedForm($this->adapter);
9921 nelberth 134
            $this->layout()->setTemplate('layout/layout-backend');
135
            $viewModel = new ViewModel();
9930 nelberth 136
            $viewModel->setTemplate('leaders-linked/high-performance-teams-groups-view-foro-articles-view/index.phtml');
9931 nelberth 137
            $viewModel->setVariables([
138
                'formAdd' => $formAdd,
139
                'group_uuid'=>$group_uuid,
140
                'group_title'=>$highPerformanceTeamsGroups->title,
141
                'group_description'=>$highPerformanceTeamsGroups->description,
10121 nelberth 142
                'category_uuid'=>$category_uuid,
143
                'article_uuid'=>$article_uuid
9931 nelberth 144
            ]);
9921 nelberth 145
            return $viewModel ;
146
 
147
 
148
        } else {
149
            return new JsonModel([
150
                'success' => false,
151
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
152
            ]);;
153
        }
154
    }
155
}