| 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 | }
 |