Proyectos de Subversion LeadersLinked - Services

Rev

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

Rev 145 Rev 161
Línea 1068... Línea 1068...
1068
                    'completed'     => $completed,
1068
                    'completed'     => $completed,
1069
                    'order'         => $topic->order,
1069
                    'order'         => $topic->order,
1070
                    'added_on'      => $topic->added_on,
1070
                    'added_on'      => $topic->added_on,
1071
                    'updated_on'    => $topic->updated_on,
1071
                    'updated_on'    => $topic->updated_on,
1072
                    'link_capsules' => $this->url()->fromRoute('microlearning/capsules', ['topic_id' => $topic->uuid], ['force_canonical' => true]),
1072
                    'link_capsules' => $this->url()->fromRoute('microlearning/capsules', ['topic_id' => $topic->uuid], ['force_canonical' => true]),
-
 
1073
                    'link_get'      => $this->url()->fromRoute('microlearning/get-topic', ['id' => $topic->uuid], ['force_canonical' => true]),
Línea 1073... Línea 1074...
1073
                    
1074
                    
1074
                ]);
1075
                ]);
Línea 1075... Línea 1076...
1075
            }
1076
            }
Línea 1106... Línea 1107...
1106
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1107
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1107
            ]);
1108
            ]);
1108
        }
1109
        }
1109
    }
1110
    }
Línea -... Línea 1111...
-
 
1111
    
-
 
1112
    public function getTopicAction()
-
 
1113
    {
-
 
1114
        $request = $this->getRequest();
-
 
1115
        if($request->isGet()) {
-
 
1116
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1117
            $currentUser = $currentUserPlugin->getUser();
-
 
1118
            
-
 
1119
            
-
 
1120
            $id = $this->params()->fromRoute('id');
-
 
1121
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1122
            $topic = $topicMapper->fetchOneByUuid($id);
-
 
1123
            
-
 
1124
            if(!$topic) {
-
 
1125
                return new JsonModel([
-
 
1126
                    'success' => false,
-
 
1127
                    'data' => 'ERROR_TOPIC_NOT_FOUND'
-
 
1128
                ]);
-
 
1129
            }
-
 
1130
            
-
 
1131
            $accessGrantedIds = $this->getAccessGranted();
-
 
1132
            
-
 
1133
            if(!in_array($topic->id, $accessGrantedIds->topics)) {
-
 
1134
                return new JsonModel([
-
 
1135
                    'success' => false,
-
 
1136
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_TOPIC'
-
 
1137
                ]);
-
 
1138
            }
-
 
1139
            
-
 
1140
            
-
 
1141
            $data = [];
-
 
1142
            $accessGrantedIds = $this->getAccessGranted();
-
 
1143
            
-
 
1144
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
-
 
1145
 
-
 
1146
            $userProgress = $userProgressMapper->fetchOneByUserIdAndTopicId($currentUser->id, $id);
-
 
1147
            if($userProgress) {
-
 
1148
                $progress = $userProgress->progress;
-
 
1149
                $completed = $userProgress->completed;
-
 
1150
            } else {
-
 
1151
                $progress = 0;
-
 
1152
                $completed = 0;
-
 
1153
            }
-
 
1154
                
-
 
1155
                
-
 
1156
                
-
 
1157
            $data = [
-
 
1158
                'name'          => $topic->name ? $topic->name : '',
-
 
1159
                'description'   => $topic->description ? $topic->description : '',
-
 
1160
                'image'         => $topic->image ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-topic', 'code' => $topic->uuid, 'filename' => $topic->image ], ['force_canonical' => true]) : '',
-
 
1161
                'progress'      => $progress,
-
 
1162
                'completed'     => $completed,
-
 
1163
                'order'         => $topic->order,
-
 
1164
                'added_on'      => $topic->added_on,
-
 
1165
                'updated_on'    => $topic->updated_on,
-
 
1166
                'link_capsules' => $this->url()->fromRoute('microlearning/capsules', ['topic_id' => $topic->uuid], ['force_canonical' => true]),
-
 
1167
                    
-
 
1168
            ];
-
 
1169
                
-
 
1170
                
-
 
1171
                
-
 
1172
            return new JsonModel([
-
 
1173
                'success' => true,
-
 
1174
                'data' => $data
-
 
1175
            ]);
-
 
1176
                
-
 
1177
        } else {
-
 
1178
            return new JsonModel([
-
 
1179
                'success' => false,
-
 
1180
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1181
            ]);
-
 
1182
        }
-
 
1183
    }
Línea 1110... Línea 1184...
1110
    
1184
    
1111
    
1185
    
1112
    public function capsulesAction()
1186
    public function capsulesAction()
1113
    {
1187
    {
Línea 1174... Línea 1248...
1174
                    'description'       => $capsule->description ? $capsule->description : '',
1248
                    'description'       => $capsule->description ? $capsule->description : '',
1175
                    'image'             => $capsule->image ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
1249
                    'image'             => $capsule->image ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
1176
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1250
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1177
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
1251
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
1178
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
1252
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
-
 
1253
                    'link_get'          => $this->url()->fromRoute('microlearning/get-capsule', ['id' => $capsule->uuid], ['force_canonical' => true]),
1179
                    'total_comments'    => strval($dataCountAndRatingAverage['total_comments']),
1254
                    'total_comments'    => strval($dataCountAndRatingAverage['total_comments']),
1180
                    'total_rating'      => strval($dataCountAndRatingAverage['total_rating']),
1255
                    'total_rating'      => strval($dataCountAndRatingAverage['total_rating']),
1181
                    'progress'          => $progress,
1256
                    'progress'          => $progress,
1182
                    'completed'         => $completed,
1257
                    'completed'         => $completed,
1183
                    'order'             => $capsule->order,
1258
                    'order'             => $capsule->order,
Línea 1221... Línea 1296...
1221
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1296
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1222
            ]);
1297
            ]);
1223
        }
1298
        }
1224
    }
1299
    }
Línea -... Línea 1300...
-
 
1300
    
-
 
1301
    public function getCapsuleAction()
-
 
1302
    {
-
 
1303
        $request = $this->getRequest();
-
 
1304
        if($request->isGet()) {
-
 
1305
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1306
            $currentUser = $currentUserPlugin->getUser();
-
 
1307
            
-
 
1308
            
-
 
1309
            
-
 
1310
            $capsule_id = $this->params()->fromRoute('id');
-
 
1311
            $capsuleMapper = CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1312
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_id);
-
 
1313
            
-
 
1314
            if(!$capsule) {
-
 
1315
                return new JsonModel([
-
 
1316
                    'success' => false,
-
 
1317
                    'data' => 'ERROR_CAPSULE_NOT_FOUND'
-
 
1318
                ]);
-
 
1319
            }
-
 
1320
            
-
 
1321
            $accessGrantedIds = $this->getAccessGranted();
-
 
1322
            
-
 
1323
            if(!in_array($capsule->id, $accessGrantedIds->capsules)) {
-
 
1324
                return new JsonModel([
-
 
1325
                    'success' => false,
-
 
1326
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
-
 
1327
                ]);
-
 
1328
            }
-
 
1329
            
-
 
1330
    
-
 
1331
            
-
 
1332
            
-
 
1333
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1334
            $topic = $topicMapper->fetchOne($capsule->topic_id);
-
 
1335
            
-
 
1336
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
-
 
1337
            $capsuleCommentMapper = CompanyMicrolearningCapsuleCommentMapper::getInstance($this->adapter);
-
 
1338
            
-
 
1339
 
-
 
1340
                
-
 
1341
            $userProgress = $userProgressMapper->fetchOneByUseridAndCapsuleId($currentUser->id, $capsule->id);
-
 
1342
            if($userProgress) {
-
 
1343
                $progress = $userProgress->progress;
-
 
1344
                $completed = $userProgress->completed;
-
 
1345
            } else {
-
 
1346
                $progress = 0;
-
 
1347
                $completed = 0;
-
 
1348
            }
-
 
1349
                
-
 
1350
            $dataCountAndRatingAverage = $capsuleCommentMapper->fetchCountAndRatingAverage($capsule->company_id, $capsule->topic_id, $capsule->id);
-
 
1351
                
-
 
1352
                
-
 
1353
                
-
 
1354
            $data = [
-
 
1355
                    'name'              => $capsule->name ? $capsule->name : '',
-
 
1356
                    'description'       => $capsule->description ? $capsule->description : '',
-
 
1357
                    'image'             => $capsule->image ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-capsule', 'code' => $capsule->uuid, 'filename' => $capsule->image ], ['force_canonical' => true])  : '',
-
 
1358
                    'link_comments'     => $this->url()->fromRoute('microlearning/capsules-comments', ['capsule_id' => $capsule->uuid], ['force_canonical' => true]),
-
 
1359
                    'link_comment_add'  => $this->url()->fromRoute('microlearning/capsules-comments/add', ['capsule_id' => $capsule->uuid],['force_canonical' => true]),
-
 
1360
                    'link_slides'       => $this->url()->fromRoute('microlearning/slides', ['topic_id' => $topic->uuid,  'capsule_id' => $capsule->uuid], ['force_canonical' => true]),
-
 
1361
                    'total_comments'    => strval($dataCountAndRatingAverage['total_comments']),
-
 
1362
                    'total_rating'      => strval($dataCountAndRatingAverage['total_rating']),
-
 
1363
                    'progress'          => $progress,
-
 
1364
                    'completed'         => $completed,
-
 
1365
                    'order'             => $capsule->order,
-
 
1366
                    'added_on'          => $capsule->added_on,
-
 
1367
                    'updated_on'        => $capsule->updated_on,
-
 
1368
            ];
-
 
1369
  
-
 
1370
                
-
 
1371
                
-
 
1372
            return new JsonModel([
-
 
1373
                'success' => true,
-
 
1374
                'data' => $data
-
 
1375
            ]);
-
 
1376
                
-
 
1377
        } else {
-
 
1378
            return new JsonModel([
-
 
1379
                'success' => false,
-
 
1380
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1381
            ]);
-
 
1382
        }
-
 
1383
    }
1225
    
1384
    
1226
    public function slidesAction()
1385
    public function slidesAction()
1227
    {
1386
    {
1228
        $request = $this->getRequest();
1387
        $request = $this->getRequest();
1229
        if($request->isGet()) {
1388
        if($request->isGet()) {
Línea 1302... Línea 1461...
1302
                    'type'          => $slide->type,
1461
                    'type'          => $slide->type,
1303
                    'background'    => $slide->background ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1462
                    'background'    => $slide->background ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
1304
                    'file'          => $slide->file ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
1463
                    'file'          => $slide->file ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
1305
                    'order'         => $slide->order,
1464
                    'order'         => $slide->order,
1306
                    'completed'     => $completed,
1465
                    'completed'     => $completed,
-
 
1466
                    'link_get'      => $this->url()->fromRoute('microlearning/get-slide', ['id' => $slide->uuid], ['force_canonical' => true]),
1307
                    'added_on'      => $slide->added_on,
1467
                    'added_on'      => $slide->added_on,
1308
                    'updated_on'    => $slide->updated_on,
1468
                    'updated_on'    => $slide->updated_on,
1309
                ]);
1469
                ]);
Línea 1340... Línea 1500...
1340
                
1500
                
1341
        } else {
1501
        } else {
1342
            return new JsonModel([
1502
            return new JsonModel([
1343
                'success' => false,
1503
                'success' => false,
-
 
1504
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1505
            ]);
-
 
1506
        }
-
 
1507
    }
-
 
1508
    
-
 
1509
    
-
 
1510
    public function getSlideAction()
-
 
1511
    {
-
 
1512
        $request = $this->getRequest();
-
 
1513
        if($request->isGet()) {
-
 
1514
            $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1515
            $currentUser = $currentUserPlugin->getUser();
-
 
1516
            
-
 
1517
            
-
 
1518
            
-
 
1519
            $id = $this->params()->fromRoute('id');
-
 
1520
            $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
-
 
1521
            $slide = $slideMapper->fetchOneByUuid($id);
-
 
1522
            
-
 
1523
            if(!$slide) {
-
 
1524
                return new JsonModel([
-
 
1525
                    'success' => false,
-
 
1526
                    'data' => 'ERROR_SLIDE_NOT_FOUND'
-
 
1527
                ]);
-
 
1528
            }
-
 
1529
            
-
 
1530
            $accessGrantedIds = $this->getAccessGranted();
-
 
1531
            
-
 
1532
            
-
 
1533
            
-
 
1534
            if(!in_array($slide->capsule_id, $accessGrantedIds->capsules)) {
-
 
1535
                return new JsonModel([
-
 
1536
                    'success' => false,
-
 
1537
                    'data' => 'ERROR_YOU_DO_NOT_HAVE_ACCESS_TO_THIS_CAPSULE'
-
 
1538
                ]);
-
 
1539
            }
-
 
1540
            
-
 
1541
            
-
 
1542
            $topicMapper = CompanyMicrolearningTopicMapper::getInstance($this->adapter);
-
 
1543
            $topic = $topicMapper->fetchOne($slide->topic_id);
-
 
1544
 
-
 
1545
            $capsuleMapper =  CompanyMicrolearningCapsuleMapper::getInstance($this->adapter);
-
 
1546
            $capsule = $capsuleMapper->fetchOne($slide->capsule_id);
-
 
1547
            
-
 
1548
            
-
 
1549
 
-
 
1550
            
-
 
1551
            
-
 
1552
            $slideMapper = CompanyMicrolearningSlideMapper::getInstance($this->adapter);
-
 
1553
            $userProgressMapper = CompanyMicrolearningUserProgressMapper::getInstance($this->adapter);
-
 
1554
            
-
 
1555
            
-
 
1556
            $userProgress = $userProgressMapper->fetchOneByUserIdAndSlideId($currentUser->id, $slide->id);
-
 
1557
            if($userProgress) {
-
 
1558
                $completed = $userProgress->completed;
-
 
1559
            } else {
-
 
1560
                $completed = 0;
-
 
1561
            }
-
 
1562
                
-
 
1563
                
-
 
1564
                
-
 
1565
            $data =[
-
 
1566
                'quiz'          => '',
-
 
1567
                'name'          => $slide->name ? $slide->name : '',
-
 
1568
                'description'   => $slide->description ? $slide->description : '',
-
 
1569
                'type'          => $slide->type,
-
 
1570
                'background'    => $slide->background ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->background], ['force_canonical' => true]) : '',
-
 
1571
                'file'          => $slide->file ? $this->url()->fromRoute('services/storage',['type' => 'microlearning-slide', 'code' => $slide->uuid, 'filename' => $slide->file], ['force_canonical' => true]) : '',
-
 
1572
                'order'         => $slide->order,
-
 
1573
                'completed'     => $completed,
-
 
1574
                'added_on'      => $slide->added_on,
-
 
1575
                'updated_on'    => $slide->updated_on,
-
 
1576
            ];
-
 
1577
 
-
 
1578
                
-
 
1579
                
-
 
1580
                
-
 
1581
            return new JsonModel([
-
 
1582
                'success' => true,
-
 
1583
                'data' => $data
-
 
1584
            ]);
-
 
1585
                
-
 
1586
        } else {
-
 
1587
            return new JsonModel([
-
 
1588
                'success' => false,
1344
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1589
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
1345
            ]);
1590
            ]);
1346
        }
1591
        }
Línea 1347... Línea 1592...
1347
    }
1592
    }