Proyectos de Subversion LeadersLinked - Services

Rev

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

Rev 230 Rev 235
Línea 33... Línea 33...
33
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
33
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserStudentTypeMapper;
34
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
34
use LeadersLinked\Mapper\CompanyMicrolearningExtendUserSectorMapper;
35
use LeadersLinked\Mapper\CompanyMicrolearningQuizMapper;
35
use LeadersLinked\Mapper\CompanyMicrolearningQuizMapper;
36
use LeadersLinked\Mapper\CompanyMicrolearningQuestionMapper;
36
use LeadersLinked\Mapper\CompanyMicrolearningQuestionMapper;
37
use LeadersLinked\Mapper\CompanyMicrolearningAnswerMapper;
37
use LeadersLinked\Mapper\CompanyMicrolearningAnswerMapper;
-
 
38
use LeadersLinked\Model\CompanyMicrolearningSlide;
Línea 38... Línea 39...
38
 
39
 
39
 
40
 
40
class MicrolearningUserAccessGrantedIds
41
class MicrolearningUserAccessGrantedIds
Línea 1308... Línea 1309...
1308
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1309
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1309
            ]);
1310
            ]);
1310
        }
1311
        }
1311
    }
1312
    }
Línea -... Línea 1313...
-
 
1313
    
-
 
1314
    public function takeTestAction() 
-
 
1315
    {
-
 
1316
        $request = $this->getRequest();
-
 
1317
        if($request->isPost()) {
-
 
1318
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1319
            $currentUser = $currentUserPlugin->getUser();
-
 
1320
            
-
 
1321
            $slide_id = $this->params()->fromRoute('slide_id');
-
 
1322
            $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
-
 
1323
            $slide = $slideMapper->fetchOneByUuid($slide_id);
-
 
1324
            
-
 
1325
            if(!$slide) {
-
 
1326
                return new JsonModel([
-
 
1327
                    'success' => false,
-
 
1328
                    'data' => 'ERROR_SLIDE_NOT_FOUND'
-
 
1329
                ]);
-
 
1330
            }
-
 
1331
            
-
 
1332
            if($slide->type != CompanyMicrolearningSlide::TYPE_QUIZ) {
-
 
1333
                return new JsonModel([
-
 
1334
                    'success' => false,
-
 
1335
                    'data' => 'ERROR_SLIDE_IS_NOT_QUIZ'
-
 
1336
                ]);
-
 
1337
            }
-
 
1338
            
-
 
1339
            
-
 
1340
        
-
 
1341
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1342
            $capsule = $capsuleMapper->fetchOne($slide->capsule_id);
-
 
1343
            
-
 
1344
            if(!$capsule) {
-
 
1345
                return new JsonModel([
-
 
1346
                    'success' => false,
-
 
1347
                    'data' => 'ERROR_CAPSULE_NOT_FOUND'
-
 
1348
                ]);
-
 
1349
            }
-
 
1350
            
-
 
1351
            $accessGrantedIds = $this->getAccessGranted();
-
 
1352
            
-
 
1353
            if(!in_array($capsule->id, $accessGrantedIds->capsules)) {
-
 
1354
                return new JsonModel([
-
 
1355
                    'success' => false,
-
 
1356
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
-
 
1357
                ]);
-
 
1358
            }
-
 
1359
            
-
 
1360
            $userLogMapper = CompanyMicrolearningUserLogMapper::getInstance($this->adapter);
-
 
1361
            $userLog = $userLogMapper->fetchOneTakeATestByUserIdAndSlideId($currentUser->id, $slide->id);
-
 
1362
            
-
 
1363
            if($userLog) {
-
 
1364
                $activity = CompanyMicrolearningUserLog::ACTIVITY_RETAKE_A_TEST;
-
 
1365
            } else {
-
 
1366
                $activity = CompanyMicrolearningUserLog::ACTIVITY_TAKE_A_TEST;
-
 
1367
            }
-
 
1368
            
-
 
1369
            $added_on = $userLogMapper->getDatebaseNow();
-
 
1370
            
-
 
1371
            $userLog = new CompanyMicrolearningUserLog();
-
 
1372
            $userLog->activity      = $activity;
-
 
1373
            $userLog->user_id       = $currentUser->id;
-
 
1374
            $userLog->company_id    = $slide->company_id;
-
 
1375
            $userLog->topic_id      = $slide->topic_id;
-
 
1376
            $userLog->capsule_id    = $slide->capsule_id;
-
 
1377
            $userLog->slide_id      = $slide->id;
-
 
1378
            $userLog->added_on      = $added_on;
-
 
1379
            
-
 
1380
            if($userLogMapper->insert($userLog)) {
-
 
1381
                return new JsonModel([
-
 
1382
                    'success' => true,
-
 
1383
                ]);
-
 
1384
            } else {
-
 
1385
                return new JsonModel([
-
 
1386
                    'success' => false,
-
 
1387
                    'data' => $userLogMapper->getError()
-
 
1388
                ]);
-
 
1389
            }
-
 
1390
            
-
 
1391
            
-
 
1392
            
-
 
1393
            
-
 
1394
            
-
 
1395
            
-
 
1396
            
-
 
1397
        } else {
-
 
1398
            return new JsonModel([
-
 
1399
                'success' => false,
-
 
1400
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1401
            ]);
-
 
1402
        }
-
 
1403
    }
1312
    
1404
    
1313
    public function getCapsuleAction()
1405
    public function getCapsuleAction()
1314
    {
1406
    {
1315
        $request = $this->getRequest();
1407
        $request = $this->getRequest();
1316
        if($request->isGet()) {
1408
        if($request->isGet()) {
Línea 1464... Línea 1556...
1464
                    $completed =  $userProgress->completed ;
1556
                    $completed =  $userProgress->completed ;
1465
                } else {
1557
                } else {
1466
                    $completed = 0;
1558
                    $completed = 0;
1467
                }
1559
                }
Línea 1468... Línea -...
1468
                
-
 
-
 
1560
                
Línea -... Línea 1561...
-
 
1561
 
1469
                $quiz_uuid = '';
1562
                
-
 
1563
                $link_take_a_test = '';
-
 
1564
                if($slide->quiz_id) {
1470
                
1565
                    
1471
                if($slide->quiz_id) {
1566
                    $quizMapper = CompanyMicrolearningQuizMapper::getInstance($this->adapter);
1472
                    $quiz = $quizMapper->fetchOne($slide->quiz_id);
1567
                    $quiz = $quizMapper->fetchOne($slide->quiz_id);
1473
                    if($quiz) {
-
 
-
 
1568
                    if($quiz) {
-
 
1569
                        $quiz_uuid = $quiz->uuid;
1474
                        $quiz_uuid = $quiz->uuid;
1570
                        $quiz_data = $this->getQuiz($slide->quiz_id);
1475
   
-
 
1476
                    }
1571
                        $link_take_a_test = $this->url()->fromRoute('microlearning/take-a-test', ['slide_id' => $slide->uuid], ['force_canonical' => true]);
-
 
1572
                    }
Línea 1477... Línea 1573...
1477
                }
1573
                    
1478
                
1574
                } 
-
 
1575
 
1479
 
1576
                
1480
                
1577
                array_push($data, [
1481
                array_push($data, [
1578
                    'quiz'                  => $quiz_uuid,
1482
                    'quiz'          => $quiz_uuid,
1579
                    'quiz_data'             => $quiz_data,
1483
                    'uuid'          => $slide->uuid,
1580
                    'uuid'                  => $slide->uuid,
1484
                    'name'          => $slide->name ? $slide->name : '',
1581
                    'name'                  => $slide->name ? $slide->name : '',
1485
                    'description'   => $slide->description ? $slide->description : '',
1582
                    'description'           => $slide->description ? $slide->description : '',
1486
                    'type'          => $slide->type,
1583
                    'type'                  => $slide->type,
1487
                    'background'    => $slide->background ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1584
                    'background'            => $slide->background ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1488
                    'file'          => $slide->file ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
1585
                    'file'                  => $slide->file ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
-
 
1586
                    'order'                 => $slide->order,
1489
                    'order'         => $slide->order,
1587
                    'completed'             => $completed,
1490
                    'completed'     => $completed,
1588
                    'link_get'              => $this->url()->fromRoute('microlearning/get-slide', ['id' => $slide->uuid], ['force_canonical' => true]),
1491
                    'link_get'      => $this->url()->fromRoute('microlearning/get-slide', ['id' => $slide->uuid], ['force_canonical' => true]),
1589
                    'link_sync'             => $this->url()->fromRoute('microlearning/sync', ['operation' => 'slide-view', 'topic_uuid' => $topic->uuid, 'capsule_uuid' => $capsule->uuid, 'slide_uuid' => $slide->uuid], ['force_canonical' => true]),
Línea 1492... Línea 1590...
1492
                    'link_sync'     => $this->url()->fromRoute('microlearning/sync', ['operation' => 'slide-view', 'topic_uuid' => $topic->uuid, 'capsule_uuid' => $capsule->uuid, 'slide_uuid' => $slide->uuid], ['force_canonical' => true]),
1590
                    'link_take_a_test'      => link_take_a_test,
Línea 1662... Línea 1760...
1662
            if($userProgress) {
1760
            if($userProgress) {
1663
                $completed = $userProgress->completed;
1761
                $completed = $userProgress->completed;
1664
            } else {
1762
            } else {
1665
                $completed = 0;
1763
                $completed = 0;
1666
            }
1764
            }
-
 
1765
            
-
 
1766
            $quiz_uuid = '';
-
 
1767
            $quiz_data = [];
-
 
1768
            $link_take_a_test = '';
-
 
1769
            if($slide->quiz_id) {
-
 
1770
            
-
 
1771
                $quizMapper = CompanyMicrolearningQuizMapper::getInstance($this->adapter);
-
 
1772
                $quiz = $quizMapper->fetchOne($slide->quiz_id);
-
 
1773
                if($quiz) {
-
 
1774
                    $quiz_uuid = $quiz->uuid;
-
 
1775
                    $quiz_data = $this->getQuiz($slide->quiz_id);
-
 
1776
                    $link_take_a_test = $this->url()->fromRoute('microlearning/take-a-test', ['slide_id' => $slide->uuid], ['force_canonical' => true]);
-
 
1777
                }
Línea -... Línea 1778...
-
 
1778
                
Línea 1667... Línea 1779...
1667
                
1779
            } 
1668
                
1780
                
1669
                
1781
                
1670
            $data =[
1782
            $data =[
1671
                'quiz'          => $slide->quiz_id,
1783
                'quiz'              => $quiz_uuid,
1672
                'quiz_data'     => $slide->quiz_id ? $this->getQuiz($slide->quiz_id) : [],
1784
                'quiz_data'         => $quiz_data,
1673
                'uuid'          => $slide->uuid,
1785
                'uuid'              => $slide->uuid,
1674
                'name'          => $slide->name ? $slide->name : '',
1786
                'name'              => $slide->name ? $slide->name : '',
1675
                'description'   => $slide->description ? $slide->description : '',
1787
                'description'       => $slide->description ? $slide->description : '',
1676
                'type'          => $slide->type,
1788
                'type'              => $slide->type,
1677
                'background'    => $slide->background ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1789
                'background'        => $slide->background ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1678
                'file'          => $slide->file ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
1790
                'file'              => $slide->file ? $this->url()->fromRoute('storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
-
 
1791
                'order'             => $slide->order,
1679
                'order'         => $slide->order,
1792
                'completed'         => $completed,
1680
                'completed'     => $completed,
1793
                'link_sync'         => $this->url()->fromRoute('microlearning/sync', ['operation' => 'slide-view', 'topic_uuid' => $topic->uuid, 'capsule_uuid' => $capsule->uuid, 'slide_uuid' => $slide->uuid], ['force_canonical' => true]),
1681
                'link_sync'     => $this->url()->fromRoute('microlearning/sync', ['operation' => 'slide-view', 'topic_uuid' => $topic->uuid, 'capsule_uuid' => $capsule->uuid, 'slide_uuid' => $slide->uuid], ['force_canonical' => true]),
1794
                'link_take_a_test'  => $link_take_a_test,