Proyectos de Subversion LeadersLinked - Backend

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
10273 eleazar 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;
10759 eleazar 16
use LeadersLinked\Mapper\MyTrainerQuestionsMapper;
17
use LeadersLinked\Form\MyTrainerQuestionForm;
18
use LeadersLinked\Model\MyTrainerQuestions;
19
use LeadersLinked\Mapper\MyTrainerAnswerMapper;
20
use LeadersLinked\Form\MyTrainerAnswerForm;
21
use LeadersLinked\Model\MyTrainerAnswer;
10601 eleazar 22
 
23
use LeadersLinked\Model\Feed;
10273 eleazar 24
use LeadersLinked\Form\CreateFeedForm;
10601 eleazar 25
use LeadersLinked\Form\TopicForm;
26
 
10273 eleazar 27
use LeadersLinked\Mapper\UserMapper;
28
 
29
class MyTrainerAnswerController 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
    }
10601 eleazar 74
 
75
    public function IndexAction()
10273 eleazar 76
    {
77
        $currentUserPlugin = $this->plugin('currentUserPlugin');
78
        $currentUser = $currentUserPlugin->getUser();
79
        $currentCompany = $currentUserPlugin->getCompany();
10601 eleazar 80
        $urgent   = $this->params()->fromRoute('urgent');
10819 eleazar 81
        $question   = $this->params()->fromRoute('myt_id');
10766 eleazar 82
 
10601 eleazar 83
        if(!isset($urgent)){
84
            $urgent='';
10423 eleazar 85
        }
86
 
10609 eleazar 87
        if(!isset($topic_uuid)){
88
            $topic_uuid='';
89
        }
10612 eleazar 90
        try{
91
            $request = $this->getRequest();
92
            if($request->isGet()) {
93
                $headers  = $request->getHeaders();
10273 eleazar 94
 
10612 eleazar 95
                $isJson = false;
96
                if($headers->has('Accept')) {
97
                    $accept = $headers->get('Accept');
98
 
99
                    $prioritized = $accept->getPrioritized();
100
 
101
                    foreach($prioritized as $key => $value) {
102
                        $raw = trim($value->getRaw());
103
 
104
                        if(!$isJson) {
105
                            $isJson = strpos($raw, 'json');
106
                        }
107
 
10601 eleazar 108
                    }
109
                }
10759 eleazar 110
                $questionsMapper = MyTrainerQuestionsMapper::getInstance($this->adapter);
10761 eleazar 111
                $questions = $questionsMapper->fetchOneByUuid($question);
10768 eleazar 112
                // return new JsonModel([
113
                //     'success' => false,
114
                //     'data' => $questions
115
                // ]);
10601 eleazar 116
 
10612 eleazar 117
                $rolAdmin=true;
10601 eleazar 118
 
10612 eleazar 119
                $formFeed = new CreateFeedForm($this->adapter);
120
                $formTopicNomal = new TopicForm();
121
                $this->layout()->setTemplate('layout/layout-backend');
122
                $viewModel = new ViewModel();
123
                $viewModel->setTemplate('leaders-linked/my-trainer-answer/index.phtml');
124
                $viewModel->setVariables([
125
                    'formFeed'    =>  $formFeed,
126
                    'topic_uuid' => $topic_uuid,
10820 eleazar 127
                    'myt_id' => $questions->uuid,
10612 eleazar 128
                    'formTopicNormal' => $formTopicNomal,
129
                    'urgent'=>$urgent,
10768 eleazar 130
                    'question_title' => $questions->title,
131
                    'question_text' => $questions->text,
10612 eleazar 132
                    'rolAdmin'=>$rolAdmin,
133
                ]);
134
                return $viewModel ;
135
 
136
 
137
            } else {
138
                return new JsonModel([
139
                    'success' => false,
140
                    'data' => 'ERROR_METHOD_NOT_ALLOWED'
141
                ]);
142
            }
143
        } catch (\Throwable $e) {
144
            $e->getMessage();
10273 eleazar 145
            return new JsonModel([
146
                'success' => false,
10612 eleazar 147
                'data' => $e
10601 eleazar 148
            ]);
10273 eleazar 149
        }
10612 eleazar 150
 
10273 eleazar 151
    }
10601 eleazar 152
 
153
 
154
 
10273 eleazar 155
}