Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17245 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 17245 Rev 17248
Línea 1... Línea 1...
1
<?php
1
<?php
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
use Laminas\Db\Adapter\AdapterInterface;
4
namespace LeadersLinked\Controller;
7
 
-
 
8
use Laminas\Mvc\Controller\AbstractActionController;
5
 
9
use Laminas\Log\LoggerInterface;
6
use Laminas\Mvc\Controller\AbstractActionController;
Línea 10... Línea 7...
10
use Laminas\View\Model\ViewModel;
7
use Laminas\View\Model\ViewModel;
11
use Laminas\View\Model\JsonModel;
-
 
12
 
-
 
13
use LeadersLinked\Library\Functions;
-
 
14
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
8
use Laminas\View\Model\JsonModel;
15
use LeadersLinked\Library\Image;
9
 
16
use LeadersLinked\Mapper\MicrolearningTopicMapper;
10
use LeadersLinked\Library\Functions;
17
use LeadersLinked\Mapper\MicrolearningCapsuleMapper;
11
use LeadersLinked\Mapper\MicrolearningCapsuleMapper;
18
use LeadersLinked\Model\MicrolearningCapsule;
-
 
19
use LeadersLinked\Form\Microlearning\CapsuleAddForm;
-
 
20
use LeadersLinked\Form\Microlearning\CapsuleEditForm;
-
 
21
use LeadersLinked\Mapper\MicrolearningCapsuleUserMapper;
-
 
22
use LeadersLinked\Mapper\QueryMapper;
12
use LeadersLinked\Model\MicrolearningCapsule;
Línea 23... Línea 13...
23
use LeadersLinked\Mapper\UserMapper;
13
use LeadersLinked\Form\Microlearning\CapsuleAddForm;
24
use LeadersLinked\Model\MicrolearningCapsuleUser;
14
use LeadersLinked\Form\Microlearning\CapsuleEditForm;
25
use LeadersLinked\Library\Storage;
15
use LeadersLinked\Library\Storage;
Línea 384... Línea 374...
384
     * Borrar un perfil excepto el público
374
     * Borrar un perfil excepto el público
385
     * @return \Laminas\View\Model\JsonModel
375
     * @return \Laminas\View\Model\JsonModel
386
     */
376
     */
387
    public function deleteAction()
377
    public function deleteAction()
388
    {
378
    {
-
 
379
        try {
-
 
380
            $request = $this->getRequest();
-
 
381
 
-
 
382
            if(!$request->isPost()) {
-
 
383
                return $this->createErrorResponse('ERROR_METHOD_NOT_ALLOWED');
-
 
384
            }
-
 
385
 
389
        $currentUserPlugin = $this->plugin('currentUserPlugin');
386
            $currentUserPlugin = $this->plugin('currentUserPlugin');
390
        $currentUser    = $currentUserPlugin->getUser();
387
            $currentUser    = $currentUserPlugin->getUser();
391
        $currentCompany = $currentUserPlugin->getCompany();
388
            $currentCompany = $currentUserPlugin->getCompany();
-
 
389
            $capsule_uuid   = $this->params()->fromRoute('capsule_uuid');
-
 
390
            
-
 
391
            if(!$currentUser) {
-
 
392
                return $this->createErrorResponse('ERROR_UNAUTHORIZED');
-
 
393
            }
-
 
394
 
-
 
395
            if(!$currentCompany) {
-
 
396
                return $this->createErrorResponse('ERROR_UNAUTHORIZED');
-
 
397
            }
392
        
398
 
393
        $request        = $this->getRequest();
399
            if(!$capsule_uuid) {
394
        $capsule_uuid   = $this->params()->fromRoute('capsule_uuid');
400
                return $this->createErrorResponse('ERROR_CAPSULE_NOT_FOUND');
-
 
401
            }
Línea 395... Línea 402...
395
        
402
        
396
        $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
403
            $capsuleMapper = MicrolearningCapsuleMapper::getInstance($this->adapter);
397
        $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
404
            $capsule = $capsuleMapper->fetchOneByUuid($capsule_uuid);
398
        if(!$capsule) {
-
 
399
            return new JsonModel([
405
            if(!$capsule) {
400
                'success'   => false,
406
                $this->logger->err('Error in deleteAction: ' . $capsule_uuid);
401
                'data'   => 'ERROR_CAPSULE_NOT_FOUND'
407
                return $this->createErrorResponse('ERROR_CAPSULE_NOT_FOUND');
402
            ]);
-
 
Línea 403... Línea 408...
403
        }
408
            }
404
        
-
 
405
        if($capsule->company_id != $currentCompany->id) {
409
        
406
            return new JsonModel([
410
            if($capsule->company_id != $currentCompany->id) {
407
                'success'   => false,
411
                $this->logger->err('Error in deleteAction: ' . $capsule_uuid);
408
                'data'   => 'ERROR_UNAUTHORIZED'
-
 
Línea 409... Línea -...
409
            ]);
-
 
410
        }
-
 
411
 
412
                return $this->createErrorResponse('ERROR_UNAUTHORIZED');
412
        if($request->isPost()) {
-
 
413
            
-
 
414
            $result =  $capsuleMapper->delete($capsule);
-
 
415
            if($result) {
-
 
416
                $this->logger->info('Se borro la cápsula : ' .  $capsule->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
413
            }
417
               
414
 
418
                
415
            // Eliminar archivos de almacenamiento
419
                $storage = Storage::getInstance($this->config, $this->adapter);
416
            $storage = Storage::getInstance($this->config, $this->adapter);
420
                $target_path = $storage->getPathMicrolearningCapsule();
-
 
421
                
417
            $target_path = $storage->getPathMicrolearningCapsule();
422
                $storage->deleteFile($target_path, $capsule->uuid, $capsule->image);
-
 
423
                
-
 
424
                $storage->deleteFile($target_path, $capsule->uuid, $capsule->image);
418
            
425
                
419
            if($capsule->image) {
426
                $data = [
420
                if(!$storage->deleteFile($target_path, $capsule->uuid, $capsule->image)) {
427
                    'success' => true,
421
                    $this->logger->err('Error in deleteAction: ' . $capsule_uuid);
428
                    'data' => 'LABEL_RECORD_DELETED'
422
                    return $this->createErrorResponse('ERROR_DELETING_FILE');
429
                ];
423
                }
430
            } else {
424
            }
431
                
425
 
432
                $data = [
-
 
433
                    'success'   => false,
-
 
434
                    'data'      => $capsuleMapper->getError()
-
 
435
                ];
426
            if(!$capsuleMapper->delete($capsule)) {
Línea 436... Línea -...
436
                
-
 
437
                return new JsonModel($data);
-
 
438
            }
-
 
439
            
427
                $this->logger->err('Error in deleteAction: ' . $capsule_uuid);
440
        } else {
-
 
Línea 441... Línea 428...
441
            $data = [
428
                return $this->createErrorResponse($capsuleMapper->getError());
-
 
429
            }
-
 
430
            
-
 
431
            $this->logger->info('Se borro la cápsula : ' .  $capsule->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
432
            
-
 
433
            return new JsonModel([
-
 
434
                'success' => true,
-
 
435
                'data' => 'LABEL_RECORD_DELETED'
442
                'success' => false,
436
            ]);
443
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
444
            ];
-
 
445
            
437
            
Línea 446... Línea 438...
446
            return new JsonModel($data);
438
        } catch (\Exception $e) {
447
        }
439
            $this->logger->err('Error in deleteAction: ' . $e->getMessage());