Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 11318 | Autoría | Ultima modificación | Ver Log |

<?php
declare(strict_types=1);

namespace LeadersLinked\Controller;

use Laminas\Authentication\AuthenticationService;
use Laminas\Authentication\Result as AuthResult;
use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\Mvc\I18n\Translator;
use Laminas\Log\LoggerInterface;
use Laminas\View\Model\ViewModel;
use Laminas\View\Model\JsonModel;
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
use LeadersLinked\Mapper\MyTrainerQuestionsMapper;
use LeadersLinked\Mapper\FeedMapper;
use LeadersLinked\Form\MyTrainerQuestionForm;
use LeadersLinked\Model\MyTrainerQuestions;

use LeadersLinked\Model\Feed;
use LeadersLinked\Form\CreateFeedForm;
use LeadersLinked\Form\TopicForm;

use LeadersLinked\Mapper\UserMapper;

class MyTrainerAnswerController extends AbstractActionController
{
    /**
     *
     * @var AdapterInterface
     */
    private $adapter;
    
    
    /**
     *
     * @var AbstractAdapter
     */
    private $cache;
    
    /**
     *
     * @var  LoggerInterface
     */
    private $logger;
    
    /**
     *
     * @var array
     */
    private $config;
    
    
    
    /**
     *
     * @param AdapterInterface $adapter
     * @param AbstractAdapter $cache
     * @param LoggerInterface $logger
     * @param array $config
     */
    public function __construct($adapter, $cache , $logger, $config)
    {
        $this->adapter      = $adapter;
        $this->cache        = $cache;
        $this->logger       = $logger;
        $this->config       = $config;
        
        
    }

    public function indexAction() {
        $request = $this->getRequest();
        $currentUserPlugin = $this->plugin('currentUserPlugin');
        $currentCompany = $currentUserPlugin->getCompany();
        $currentUser = $currentUserPlugin->getUser();

        try{
        $request = $this->getRequest();
        

        if($request->isGet()) {
            $myt_id =  $this->params()->fromRoute('myt_id');
            $headers  = $request->getHeaders();
            $isJson = false;
            if($headers->has('Accept')) {
                $accept = $headers->get('Accept');

                $prioritized = $accept->getPrioritized();

                foreach($prioritized as $key => $value) {
                    $raw = trim($value->getRaw());

                    if(!$isJson) {
                        $isJson = strpos($raw, 'json');
                    }

                }
            }

                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
                $allowAdd = $acl->isAllowed($currentUser->usertype_id, 'my-trainer/answer/add');
                $allowEdit = $acl->isAllowed($currentUser->usertype_id, 'my-trainer/answer/edit');
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'my-trainer/answer/delete');
        
                $form = new CreateFeedForm($this->adapter);
                $questionsMapper = FeedMapper::getInstance($this->adapter);
                $question = $questionsMapper->fetchOneByUuid($myt_id);
        
                // $posts;
        
                $viewModel = new ViewModel();
                $this->layout()->setTemplate('layout/layout-backend');
                $viewModel->setTemplate('leaders-linked/my-trainer-answer/index.phtml');
                $viewModel->setVariables([
                    'form' => $form,
                    'question_title' => $question->title,
                    'question_description' => $question->description,
                    
                ]);
                return $viewModel;
        } else {
            return new JsonModel([
                'success' => false,
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
            ]);
        }
    } catch (\Throwable $e) {
            $e->getMessage();
            return new JsonModel([
                'success' => false,
                'data' => $e
            ]);
        }
    }
   
    
}