Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 280 | Rev 1545 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 280 Rev 1323
Línea 2... Línea 2...
2
declare(strict_types=1);
2
declare(strict_types=1);
Línea 3... Línea 3...
3
 
3
 
Línea 4... Línea -...
4
namespace LeadersLinked\Controller;
-
 
5
 
-
 
6
 
4
namespace LeadersLinked\Controller;
7
use Laminas\Authentication\AuthenticationService;
5
 
8
use Laminas\Authentication\Result as AuthResult;
6
 
9
use Laminas\Db\Adapter\AdapterInterface;
7
use Laminas\Db\Adapter\AdapterInterface;
10
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
8
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
11
use Laminas\Mvc\Controller\AbstractActionController;
-
 
12
use Laminas\Log\LoggerInterface;
-
 
13
use Laminas\View\Model\JsonModel;
-
 
14
 
-
 
15
use LeadersLinked\Authentication\AuthAdapter;
-
 
16
use LeadersLinked\Mapper\UserMapper;
-
 
17
use LeadersLinked\Mapper\EmailTemplateMapper;
-
 
18
use LeadersLinked\Model\User;
-
 
19
use LeadersLinked\Model\UserType;
-
 
20
 
-
 
21
use LeadersLinked\Library\AesCipher;
-
 
22
use LeadersLinked\Library\QueueEmail;
-
 
23
use LeadersLinked\Library\Functions;
-
 
24
use LeadersLinked\Model\EmailTemplate;
-
 
25
use LeadersLinked\Mapper\UserPasswordMapper;
-
 
26
use LeadersLinked\Mapper\DeviceMapper;
-
 
27
use LeadersLinked\Model\Device;
-
 
28
use LeadersLinked\Mapper\ApplicationMapper;
-
 
29
use LeadersLinked\Model\Application;
-
 
30
use LeadersLinked\Validator\PasswordStrengthCheck;
-
 
31
 
-
 
32
use LeadersLinked\Mapper\CompanyMapper;
9
use Laminas\Mvc\Controller\AbstractActionController;
33
use LeadersLinked\Model\Company;
-
 
34
use LeadersLinked\Mapper\CompanyMicrolearningTopicMapper;
-
 
35
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleMapper;
-
 
36
use LeadersLinked\Mapper\CompanyMicrolearningSlideMapper;
-
 
37
use LeadersLinked\Model\CompanyMicrolearningSlide;
-
 
38
use LeadersLinked\Mapper\CompanyMicrolearningUserLogMapper;
-
 
39
use LeadersLinked\Mapper\CompanyMicrolearningUserProgressMapper;
-
 
40
use LeadersLinked\Mapper\CompanyMicrolearningQuizMapper;
-
 
41
use LeadersLinked\Mapper\CompanyMicrolearningQuestionMapper;
-
 
42
use LeadersLinked\Mapper\CompanyMicrolearningAnswerMapper;
-
 
43
use LeadersLinked\Model\CompanyMicrolearningUserProgress;
-
 
44
use LeadersLinked\Model\CompanyMicrolearningUserLog;
-
 
45
use LeadersLinked\Mapper\DeviceHistoryMapper;
-
 
46
use LeadersLinked\Model\DeviceHistory;
10
use Laminas\Log\LoggerInterface;
47
use LeadersLinked\Mapper\PushMapper;
-
 
48
use LeadersLinked\Model\Push;
-
 
49
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleUserMapper;
-
 
50
use LeadersLinked\Mapper\CompanyServiceMapper;
-
 
51
use LeadersLinked\Model\Service;
-
 
52
use LeadersLinked\Model\CompanyService;
-
 
53
use LeadersLinked\Model\CompanyMicrolearningCapsuleUser;
-
 
54
use LeadersLinked\Model\CompanyMicrolearningUserQuiz;
-
 
55
use LeadersLinked\Mapper\CompanyMicrolearningUserQuizMapper;
-
 
56
use LeadersLinked\Mapper\CompanyMicrolearningUserMapper;
-
 
57
use LeadersLinked\Model\CompanyMicrolearningUser;
-
 
58
use LeadersLinked\Mapper\PushTemplateMapper;
-
 
59
use LeadersLinked\Model\PushTemplate;
-
 
60
use LeadersLinked\Mapper\SyncLogMapper;
-
 
61
use LeadersLinked\Model\SyncLog;
-
 
62
use LeadersLinked\Model\CompanyMicrolearningExtendUser;
-
 
63
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserMapper;
-
 
64
use LeadersLinked\Model\CompanyMicrolearningExtendUserCompany;
-
 
65
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserCompanyMapper;
-
 
66
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserFunctionMapper;
-
 
67
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserGroupMapper;
-
 
68
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserInstitutionMapper;
-
 
69
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserPartnerMapper;
-
 
70
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserProgramMapper;
-
 
71
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
-
 
72
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
11
use Laminas\View\Model\JsonModel;
73
use LeadersLinked\Model\CompanyMicrolearningTopic;
12
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleMapper;
74
use LeadersLinked\Model\CompanyMicrolearningCapsule;
13
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleUserMapper;
Línea 75... Línea 14...
75
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleCommentMapper;
14
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleCommentMapper;
76
use LeadersLinked\Form\SelfEvaluation\CapsuleCommentForm;
15
use LeadersLinked\Form\Service\CapsuleCommentForm;
Línea 153... Línea 92...
153
                    'success' => false,
92
                    'success' => false,
154
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
93
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
155
                ]);    
94
                ]);    
156
            }
95
            }
Línea 157... Línea 96...
157
            
96
            
158
            $capsuleCommentsMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
97
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
Línea 159... Línea 98...
159
            $records = $capsuleCommentsMapper->fetchAllByCapsuleIdAndUserId($capsule->id, $currentUser->id);
98
            $records = $capsuleCommentMapper->fetchAllByCapsuleIdAndUserId($capsule->id, $currentUser->id);
160
            
99
            
161
            $data = [];
100
            $comments = [];
162
            foreach($records as $record)
101
            foreach($records as $record)
Línea 163... Línea 102...
163
            {
102
            {
164
                $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->added_on);
103
                $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->added_on);
165
                
104
                
166
                array_push($data, [
105
                array_push($comments, [
-
 
106
                    'date' => $dt->format($serviceDatetimeFormat),
167
                    'date' => $dt->format($serviceDatetimeFormat),
107
                    'rating' => $record->rating,
168
                    'rating' => $record->rating,
108
                    'comment' => $record->comment,
Línea 169... Línea -...
169
                    'comment' => $record->comment
-
 
170
                ]); 
-
 
171
            }
-
 
172
            
-
 
173
            return new JsonModel([
-
 
174
                'success' => true,
-
 
175
                'data' => $data
-
 
176
                
-
 
177
            ]);
-
 
178
        
-
 
179
        }
-
 
180
        
-
 
181
        return new JsonModel([
-
 
182
            'success' => false,
-
 
183
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
184
        ]);
-
 
185
    }
-
 
186
    
-
 
187
    public function getAction()
-
 
188
    {
-
 
189
        
-
 
190
        $request = $this->getRequest();
-
 
191
        
-
 
192
        if($request->isGet()) {
-
 
193
            $serviceDatetimeFormat = $this->config['leaderslinked.services.datetime'];
-
 
194
            
-
 
195
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
196
            $currentUser = $currentUserPlugin->getUser();
-
 
197
            
-
 
198
            $capsule_id = $this->params()->fromRoute('capsule_id');
-
 
199
            $comment_id = $this->params()->fromRoute('comment_id');
-
 
200
            
-
 
201
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
202
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
-
 
203
            
-
 
204
            if(!$capsule) {
-
 
205
                return new JsonModel([
-
 
206
                    'success' => false,
-
 
207
                    'data' => 'ERROR_CAPSULE_NOT_FOUND'
-
 
208
                    
-
 
209
                ]);
-
 
210
                
109
                    'link_delete' => $record->user_id == $currentUser->id ? $this->url()->fromRoute('services/microlearning/capsules/comments/delete', ['capsule_id' => $capsule->uuid, 'comment_id' => $record->uuid]) : '',
211
            }
-
 
212
            
-
 
213
            $capsuleUserMapper = CompanyMicrolearningCapsuleUserMapper::getInstance($this->adapter);
-
 
214
            $capsuleUser = $capsuleUserMapper->fetchOneByUserIdAndCapsuleId($currentUser->id, $capsule->id);
-
 
215
            if(! $capsuleUser) {
-
 
216
                return new JsonModel([
-
 
217
                    'success' => false,
-
 
218
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
-
 
219
                ]);
-
 
220
            }
-
 
221
            
-
 
222
            $capsuleCommentsMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
-
 
223
            $capsuleComment = $capsuleCommentsMapper->fetchOneByUuid($comment_id);
-
 
224
            
-
 
225
            if(!$capsuleComment) {
-
 
226
                return new JsonModel([
-
 
227
                    'success' => false,
-
 
228
                    'data' => 'ERROR_CAPSULE_COMMENT_NOT_FOUND',
-
 
229
                ]);
-
 
230
            }
-
 
231
            
-
 
232
            if($capsuleComment->capsule_id != $capsule->id || $capsuleComment->user_id != $currentUser->id) {
-
 
233
                return new JsonModel([
-
 
234
                    'success' => false,
-
 
235
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE_COMMENT',
-
 
236
                ]);
-
 
Línea 237... Línea 110...
237
            }
110
                ]); 
238
            
111
            }
239
            
112
            
240
            $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $capsuleComment->added_on);
113
            $dataCountrAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
241
            
114
            
242
            return new JsonModel([
115
            return new JsonModel([
-
 
116
                'success' => true,
-
 
117
                'data' => [
243
                'success' => true,
118
                    'comments' => $comments,
Línea 244... Línea 119...
244
                'data' => [
119
                    'capsule' => [
245
                    'date' => $dt->format($serviceDatetimeFormat),
120
                        'total_comments' => $dataCountrAndRatingAverage['total_comments'],
246
                    'rating' => $capsuleComment->rating,
121
                        'total_rating' => $dataCountrAndRatingAverage['total_rating']
Línea 247... Línea 122...
247
                    'comment' => $capsuleComment->comment
122
                    ]
248
                ]
123
                ]    
249
                
124
                
250
            ]);
125
            ]);
251
            
126
        
Línea -... Línea 127...
-
 
127
        }
-
 
128
        
252
        }
129
        return new JsonModel([
253
        
130
            'success' => false,
Línea 254... Línea 131...
254
        return new JsonModel([
131
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
Línea 289... Línea 166...
289
                    'success' => false,
166
                    'success' => false,
290
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
167
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE',
291
                ]);
168
                ]);
292
            }
169
            }
Línea 293... Línea 170...
293
            
170
            
294
            $capsuleCommentsMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
171
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
Línea 295... Línea 172...
295
            $capsuleComment = $capsuleCommentsMapper->fetchOneByUuid($comment_id);
172
            $capsuleComment = $capsuleCommentMapper->fetchOneByUuid($comment_id);
296
            
173
            
297
            if(!$capsuleComment) {
174
            if(!$capsuleComment) {
298
                return new JsonModel([
175
                return new JsonModel([
Línea 307... Línea 184...
307
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE_COMMENT',
184
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE_COMMENT',
308
                ]);
185
                ]);
309
            }
186
            }
Línea 310... Línea 187...
310
            
187
            
311
            
188
            
-
 
189
            $result = $capsuleCommentMapper->delete($capsuleComment->id);
-
 
190
            if($result) {
-
 
191
                $dataCountrAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
-
 
192
                
-
 
193
                
312
            $result =$capsuleCommentsMapper->delete($capsuleComment->id);
194
                
313
            if($result) {
195
                
-
 
196
                return new JsonModel([
314
                return new JsonModel([
197
                    'success' => true,
-
 
198
                    'data' => [
-
 
199
                        'message' => 'LABEL_CAPSULE_COMMENT_HAVE_BEEN_SUCCESSFULLY_DELETE',
-
 
200
                        'capsule' => [
-
 
201
                            'total_comments' => $dataCountrAndRatingAverage['total_comments'],
-
 
202
                            'total_rating' => $dataCountrAndRatingAverage['total_rating']
Línea 315... Línea 203...
315
                    'success' => true,
203
                        ]
316
                    'data' => 'LABEL_CAPSULE_COMMENT_HAVE_BEEN_SUCCESSFULLY_DELETE'
204
                    ],    
317
                    
205
                    
318
                ]);
206
                ]);
319
            } else {
207
            } else {
Línea 320... Línea 208...
320
                return new JsonModel([
208
                return new JsonModel([
321
                    'success' => false,
209
                    'success' => false,
Línea 385... Línea 273...
385
                $capsuleComment->user_id = $currentUser->id;
273
                $capsuleComment->user_id = $currentUser->id;
386
                $capsuleComment->comment = $dataPost['comment'];
274
                $capsuleComment->comment = $dataPost['comment'];
387
                $capsuleComment->rating = $dataPost['rating'];
275
                $capsuleComment->rating = $dataPost['rating'];
Línea 388... Línea 276...
388
                
276
                
389
                
277
                
390
                $capsuleCommentsMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
278
                $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
-
 
279
                $result = $capsuleCommentMapper->insert($capsuleComment);
-
 
280
                if($result) {
-
 
281
                    
-
 
282
                    $capsuleComment = $capsuleCommentMapper->fetchOne($capsuleComment->id);
-
 
283
                    
-
 
284
                    $dataCountrAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
-
 
285
                    
391
                $result = $capsuleCommentsMapper->insert($capsuleComment);
286
                    
392
                if($result) {
287
                    
-
 
288
                    return new JsonModel([
393
                    return new JsonModel([
289
                        'success' => true,
-
 
290
                        'data' => [
-
 
291
                            'message' =>'LABEL_CAPSULE_COMMENT_HAVE_BEEN_SUCCESSFULLY_ADDED',
-
 
292
                            
-
 
293
                            'comment' => [
-
 
294
                                'comment' => $capsuleComment->comment,
-
 
295
                                'rating' => $capsuleComment->rating,
-
 
296
                                'link_delete' => $this->url()->fromRoute('services/microlearning/capsules/comments/delete', ['capsule_id' => $capsule->uuid, 'comment_id' => $capsuleComment->uuid])
-
 
297
                            ],
-
 
298
                            'capsule' => [
-
 
299
                                'total_comments' => $dataCountrAndRatingAverage['total_comments'],
-
 
300
                                'total_rating' => $dataCountrAndRatingAverage['total_rating']
Línea 394... Línea 301...
394
                        'success' => true,
301
                            ]
395
                        'data' => 'LABEL_CAPSULE_COMMENT_HAVE_BEEN_SUCCESSFULLY_ADDED'
302
                        ]
396
                        
303
                        
397
                    ]);
304
                    ]);
398
                } else {
305
                } else {
Línea 399... Línea 306...
399
                    return new JsonModel([
306
                    return new JsonModel([
400
                        'success' => false,
307
                        'success' => false,
Línea 427... Línea 334...
427
        return new JsonModel([
334
        return new JsonModel([
428
            'success' => false,
335
            'success' => false,
429
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
336
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
430
        ]);
337
        ]);
431
    }
338
    }
-
 
339
    
-
 
340
    
-
 
341
   
-
 
342
    
-
 
343
    
-
 
344
    
432
}
345
}