Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 17018 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
17002 efrain 1
<?php
17288 ariadna 2
 
17002 efrain 3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Controller;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
 
9
use Laminas\Mvc\Controller\AbstractActionController;
10
use Laminas\Log\LoggerInterface;
11
use Laminas\View\Model\ViewModel;
12
use Laminas\View\Model\JsonModel;
13
use LeadersLinked\Library\Functions;
14
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
15
use LeadersLinked\Library\Image;
16
use LeadersLinked\Mapper\MediaFileMapper;
17
use LeadersLinked\Model\MediaFile;
18
use LeadersLinked\Library\Storage;
19
use LeadersLinked\Form\Media\FileForm;
20
use LeadersLinked\Mapper\MediaCategoryMapper;
21
use LeadersLinked\Model\VideoConvert;
22
use LeadersLinked\Mapper\VideoConvertMapper;
23
 
24
 
25
class MediaFileController extends AbstractActionController
26
{
27
    /**
28
     *
29
     * @var \Laminas\Db\Adapter\AdapterInterface
30
     */
31
    private $adapter;
17288 ariadna 32
 
17002 efrain 33
    /**
34
     *
35
     * @var \LeadersLinked\Cache\CacheInterface
36
     */
37
    private $cache;
17288 ariadna 38
 
39
 
17002 efrain 40
    /**
41
     *
42
     * @var \Laminas\Log\LoggerInterface
43
     */
44
    private $logger;
17288 ariadna 45
 
17002 efrain 46
    /**
47
     *
48
     * @var array
49
     */
50
    private $config;
17288 ariadna 51
 
52
 
17002 efrain 53
    /**
54
     *
55
     * @var \Laminas\Mvc\I18n\Translator
56
     */
57
    private $translator;
17288 ariadna 58
 
59
 
17002 efrain 60
    /**
61
     *
62
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
63
     * @param \LeadersLinked\Cache\CacheInterface $cache
64
     * @param \Laminas\Log\LoggerInterface LoggerInterface $logger
65
     * @param array $config
66
     * @param \Laminas\Mvc\I18n\Translator $translator
67
     */
68
    public function __construct($adapter, $cache, $logger, $config, $translator)
69
    {
70
        $this->adapter      = $adapter;
71
        $this->cache        = $cache;
72
        $this->logger       = $logger;
73
        $this->config       = $config;
74
        $this->translator   = $translator;
75
    }
17288 ariadna 76
 
17002 efrain 77
    /**
78
     *
79
     * Generación del listado de perfiles
80
     * {@inheritDoc}
81
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
82
     */
83
    public function indexAction()
84
    {
85
        $request = $this->getRequest();
86
        $currentUserPlugin = $this->plugin('currentUserPlugin');
87
        $currentCompany = $currentUserPlugin->getCompany();
88
        $currentUser    = $currentUserPlugin->getUser();
17288 ariadna 89
 
90
 
17002 efrain 91
        $request = $this->getRequest();
17288 ariadna 92
        if ($request->isGet()) {
93
 
94
 
17002 efrain 95
            $headers  = $request->getHeaders();
17288 ariadna 96
 
17002 efrain 97
            $isJson = false;
17288 ariadna 98
            if ($headers->has('Accept')) {
17002 efrain 99
                $accept = $headers->get('Accept');
17288 ariadna 100
 
17002 efrain 101
                $prioritized = $accept->getPrioritized();
17288 ariadna 102
 
103
                foreach ($prioritized as $key => $value) {
17002 efrain 104
                    $raw = trim($value->getRaw());
17288 ariadna 105
 
106
                    if (!$isJson) {
17002 efrain 107
                        $isJson = strpos($raw, 'json');
108
                    }
109
                }
110
            }
17288 ariadna 111
 
112
            // $isJson = true;
113
            if ($isJson) {
17002 efrain 114
                $category = null;
115
                $uuid = \LeadersLinked\Library\Functions::sanitizeFilterString($this->params()->fromQuery('category'));
17288 ariadna 116
                if ($uuid) {
17002 efrain 117
                    $categoryMapper = \LeadersLinked\Mapper\MediaCategoryMapper::getInstance($this->adapter);
118
                    $category = $categoryMapper->fetchOneByUuid($uuid);
17288 ariadna 119
                    if (!$category) {
120
 
121
                        if (!$category) {
17002 efrain 122
                            return new JsonModel([
123
                                'success'   => false,
124
                                'data'   => 'ERROR_MEDIA_CATEGORY_NOT_FOUND'
125
                            ]);
126
                        }
17288 ariadna 127
 
128
                        if ($category->company_id != $currentCompany->id) {
17002 efrain 129
                            return new JsonModel([
130
                                'success'   => false,
131
                                'data'   => 'ERROR_UNAUTHORIZED'
132
                            ]);
133
                        }
134
                    }
135
                }
17288 ariadna 136
 
137
                if (!$category) {
17002 efrain 138
                    return new JsonModel([
139
                        'success' => true,
140
                        'data' => [
141
                            'items' => [],
142
                            'total' => 0,
143
                        ]
144
                    ]);
145
                }
17288 ariadna 146
 
17002 efrain 147
                $search = $this->params()->fromQuery('search', []);
148
                $search = empty($search['value']) ? '' :  Functions::sanitizeFilterString($search['value']);
17288 ariadna 149
 
17002 efrain 150
                $records_x_page     = intval($this->params()->fromQuery('length', 10), 10);
17288 ariadna 151
                $page               = (intval($this->params()->fromQuery('start', 1), 10) / $records_x_page) + 1;
17002 efrain 152
                $order =  $this->params()->fromQuery('order', []);
153
                $order_field        = empty($order[0]['column']) ? 99 :  intval($order[0]['column'], 10);
154
                $order_direction    = empty($order[0]['dir']) ? 'ASC' : strtoupper(Functions::sanitizeFilterString($order[0]['dir']));
17288 ariadna 155
 
17002 efrain 156
                $fields =  ['name'];
157
                $order_field = isset($fields[$order_field]) ? $fields[$order_field] : 'name';
17288 ariadna 158
 
159
                if (!in_array($order_direction, ['ASC', 'DESC'])) {
17002 efrain 160
                    $order_direction = 'ASC';
161
                }
17288 ariadna 162
 
163
 
17018 efrain 164
                $storage = Storage::getInstance($this->config, $this->adapter);
17002 efrain 165
                $target_path = $storage->getPathMedia();
17288 ariadna 166
 
167
 
17002 efrain 168
                $acl = $this->getEvent()->getViewModel()->getVariable('acl');
169
                $allowDelete = $acl->isAllowed($currentUser->usertype_id, 'media/files/delete');
170
 
17288 ariadna 171
 
17002 efrain 172
                $mediaFileMapper = MediaFileMapper::getInstance($this->adapter);
173
 
174
                $paginator = $mediaFileMapper->fetchAllDataTableByCategoryId($category->id, $search, $page, $records_x_page, $order_field, $order_direction);
175
 
17288 ariadna 176
 
177
 
17002 efrain 178
                $records = $paginator->getCurrentItems();
179
 
180
                $items = [];
17288 ariadna 181
                foreach ($records as $record) {
17002 efrain 182
 
17288 ariadna 183
 
184
                    if ($record->type == MediaFile::TYPE_IMAGE) {
185
 
17002 efrain 186
                        $urlFile = $storage->getGenericImage($target_path, $record->uuid, $record->file);
187
                    } else {
188
                        $urlFile = $storage->getGenericFile($target_path, $record->uuid, $record->file);
189
                    }
17288 ariadna 190
 
191
                    if ($record->preview) {
17002 efrain 192
                        $urlPreview = $storage->getGenericImage($target_path, $record->uuid, $record->preview);
193
                    } else {
194
                        $urlPreview = '';
195
                    }
196
 
17288 ariadna 197
 
17002 efrain 198
                    $item = [
17288 ariadna 199
 
17002 efrain 200
                        'name' => $record->name,
201
                        'file' => [
17288 ariadna 202
                            'filename'   => $record->file,
203
                            'url'        => $urlFile,
17002 efrain 204
                            'type'      => $record->type,
17288 ariadna 205
                        ],
17002 efrain 206
                        'preview'       => [
207
                            'filename'   => $record->preview,
208
                            'url'        => $urlPreview,
17288 ariadna 209
                        ],
17002 efrain 210
                        'actions' => [
17288 ariadna 211
                            'link_delete' => $allowDelete ? $this->url()->fromRoute('media/files/delete', ['id' => $record->uuid]) : '',
17002 efrain 212
                        ]
17288 ariadna 213
 
214
 
17002 efrain 215
                    ];
216
 
17288 ariadna 217
 
17002 efrain 218
                    array_push($items, $item);
219
                }
220
 
17288 ariadna 221
 
222
 
17002 efrain 223
                return new JsonModel([
224
                    'success' => true,
225
                    'data' => [
226
                        'items' => $items,
227
                        'total' => $paginator->getTotalItemCount(),
228
                    ]
229
                ]);
230
            } else {
17288 ariadna 231
 
17002 efrain 232
                $categories = [];
17288 ariadna 233
 
17002 efrain 234
                $categoryMapper = MediaCategoryMapper::getInstance($this->adapter);
235
                $records = $categoryMapper->fetchAllByCompanyId($currentCompany->id);
17288 ariadna 236
                foreach ($records as $record) {
237
                    $categories[$record->uuid] = $record->name;
17002 efrain 238
                }
17288 ariadna 239
 
240
 
17002 efrain 241
                $form = new FileForm();
242
                $this->layout()->setTemplate('layout/layout-backend.phtml');
243
                $viewModel = new ViewModel();
244
                $viewModel->setTemplate('leaders-linked/media/files.phtml');
245
                $viewModel->setVariables([
17288 ariadna 246
                    'categories' => $categories,
247
                    'form' => $form,
17002 efrain 248
 
17288 ariadna 249
 
17002 efrain 250
                ]);
17288 ariadna 251
                return $viewModel;
17002 efrain 252
            }
253
        } else {
254
            return new JsonModel([
255
                'success' => false,
256
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
257
            ]);
258
        }
259
    }
260
 
261
    public function uploadAction()
262
    {
263
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
17288 ariadna 264
        $currentCompany     = $currentUserPlugin->getCompany();
17002 efrain 265
        $currentUser        = $currentUserPlugin->getUser();
17288 ariadna 266
 
17002 efrain 267
        $request    = $this->getRequest();
268
 
17288 ariadna 269
        if ($request->isPost()) {
270
 
17002 efrain 271
            $category = null;
272
            $uuid = \LeadersLinked\Library\Functions::sanitizeFilterString($this->params()->fromPost('category'));
17288 ariadna 273
            if ($uuid) {
17002 efrain 274
                $categoryMapper = \LeadersLinked\Mapper\MediaCategoryMapper::getInstance($this->adapter);
275
                $category = $categoryMapper->fetchOneByUuid($uuid);
17288 ariadna 276
                if (!$category) {
277
 
278
                    if (!$category) {
17002 efrain 279
                        return new JsonModel([
280
                            'success'   => false,
281
                            'data'   => 'ERROR_MEDIA_CATEGORY_NOT_FOUND'
282
                        ]);
283
                    }
17288 ariadna 284
 
285
                    if ($category->company_id != $currentCompany->id) {
17002 efrain 286
                        return new JsonModel([
287
                            'success'   => false,
288
                            'data'   => 'ERROR_UNAUTHORIZED'
289
                        ]);
290
                    }
291
                }
292
            }
17288 ariadna 293
 
294
            if (!$category) {
17002 efrain 295
                return new JsonModel([
296
                    'success'   => false,
297
                    'data'   => 'ERROR_MEDIA_CATEGORY_NOT_FOUND'
298
                ]);
299
            }
17288 ariadna 300
 
301
 
17002 efrain 302
            $form = new FileForm();
303
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
17288 ariadna 304
 
17002 efrain 305
            $form->setData($dataPost);
17288 ariadna 306
 
307
            if ($form->isValid()) {
17002 efrain 308
                $dataPost = (array) $form->getData();
17288 ariadna 309
 
17002 efrain 310
                $hydrator = new ObjectPropertyHydrator();
311
                $mediaFile = new MediaFile();
312
                $hydrator->hydrate($dataPost, $mediaFile);
17288 ariadna 313
 
17002 efrain 314
                $mediaFile->category_id = $category->id;
315
                $mediaFile->company_id  = $category->company_id;
316
                $mediaFile->file        = 'tmp';
317
                $mediaFile->type        = 'tmp';
17288 ariadna 318
 
17002 efrain 319
                $files = $this->getRequest()->getFiles()->toArray();
320
                $media_type = '';
321
                $media_tmp_filename = '';
322
                $media_filename = '';
17288 ariadna 323
 
17002 efrain 324
                if (isset($files['file']) && empty($files['file']['error'])) {
325
                    $media_tmp_filename  = $files['file']['tmp_name'];
17018 efrain 326
                    $media_filename      = \LeadersLinked\Library\Functions::normalizeStringFilename($files['file']['name']);
17288 ariadna 327
 
17002 efrain 328
                    $mime_type = mime_content_type($media_tmp_filename);
17288 ariadna 329
 
330
 
17002 efrain 331
                    if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
332
                        $media_type = MediaFile::TYPE_IMAGE;
333
                    } else if ($mime_type ==  'video/quicktime' ||  $mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
334
                        $media_type = MediaFile::TYPE_VIDEO;
335
                    } else if ($mime_type == 'audio/wav' || $mime_type == 'audio/mpeg') {
336
                        $media_type =  MediaFile::TYPE_AUDIO;
337
                    }
338
                }
17288 ariadna 339
 
340
 
341
 
342
 
343
                if (empty($media_type)) {
344
                    return new JsonModel([
17002 efrain 345
                        'success'   => false,
346
                        'data'   => 'ERROR_MEDIA_CATEGORY_NOT_FOUND'
347
                    ]);
348
                }
349
 
17288 ariadna 350
 
351
 
17002 efrain 352
                $fileMapper = MediaFileMapper::getInstance($this->adapter);
17288 ariadna 353
                if ($fileMapper->insert($mediaFile)) {
17002 efrain 354
                    $mediaFile = $fileMapper->fetchOne($mediaFile->id);
17288 ariadna 355
 
17018 efrain 356
                    $storage = Storage::getInstance($this->config, $this->adapter);
17002 efrain 357
                    $target_path = $storage->getPathMedia();
358
                    $interal_path = 'data' . DIRECTORY_SEPARATOR . 'storage' . DIRECTORY_SEPARATOR . 'tmp';
17288 ariadna 359
                    if (!file_exists($interal_path)) {
17002 efrain 360
                        mkdir($interal_path, 0775);
361
                    }
17288 ariadna 362
 
17002 efrain 363
                    if ($media_type == MediaFile::TYPE_AUDIO) {
17288 ariadna 364
                        if ($storage->moveAndPutFile($target_path, $mediaFile->uuid, $media_tmp_filename, $media_filename)) {
365
 
17002 efrain 366
                            $mediaFile->type    = $media_type;
367
                            $mediaFile->file    = $media_filename;
17288 ariadna 368
 
17002 efrain 369
                            $fileMapper->update($mediaFile);
370
                        }
371
                    } else if ($media_type == MediaFile::TYPE_IMAGE) {
372
 
17288 ariadna 373
 
374
                        $filename = substr($media_filename, 0, strrpos($media_filename, '.')) .  '.png';
375
 
17018 efrain 376
                        $image = Image::getInstance($this->config);
377
                        $full_tmp_filename = $image->uploadProcessWithOutChangeSize($media_tmp_filename, $filename);
17288 ariadna 378
 
379
                        if ($full_tmp_filename) {
380
                            if ($storage->putFile($target_path, $mediaFile->uuid,  $full_tmp_filename)) {
17018 efrain 381
                                $mediaFile->type    = $media_type;
382
                                $mediaFile->file    = $media_filename;
17288 ariadna 383
 
384
 
17018 efrain 385
                                $fileMapper->update($mediaFile);
386
                            }
17002 efrain 387
                        }
388
                    } else if ($media_type == MediaFile::TYPE_VIDEO) {
389
                        try {
17288 ariadna 390
                            $full_filename          = $interal_path . DIRECTORY_SEPARATOR . $media_filename;
391
                            $poster_filename        = substr($media_filename, 0, strrpos($media_filename, '.')) .  '.jpg';
17002 efrain 392
                            $poster_full_filename   = $interal_path . DIRECTORY_SEPARATOR . $poster_filename;
17288 ariadna 393
 
17002 efrain 394
                            move_uploaded_file($media_tmp_filename, $full_filename);
17288 ariadna 395
 
17002 efrain 396
                            $cmd        = "/usr/bin/ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width,duration  $full_filename";
397
                            $response   = trim(shell_exec($cmd));
17288 ariadna 398
 
17002 efrain 399
                            $source_duration = 0;
400
                            $lines = explode("\n", $response);
401
                            foreach ($lines as $line) {
402
                                $line = trim(strtolower($line));
403
                                if (strpos($line, 'duration') !== false) {
404
                                    $values = explode('=', $line);
405
                                    $source_duration = intval(str_replace($values[1], '#', ''), 10);
406
                                }
407
                            }
17288 ariadna 408
 
409
 
17002 efrain 410
                            if ($source_duration == 0) {
411
                                $second_extract = '00:00:02';
412
                            } else {
413
                                if ($source_duration > 10) {
414
                                    $second_extract = '00:00:10';
415
                                } else {
416
                                    $second_extract = '00:00:02';
417
                                }
418
                            }
17288 ariadna 419
 
17002 efrain 420
                            //$imageSize = $this->config['leaderslinked.image_sizes.feed_image_size'];
17288 ariadna 421
 
17002 efrain 422
                            //$cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -deinterlace -an -ss $second_extract -f mjpeg -t 1 -r 1 -y -s $imageSize $generateFile";
423
                            // $cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -an -ss $second_extract -f mjpeg -t 1 -r 1 -y -s $imageSize $generateFile";
424
                            $cmd = "/usr/bin/ffmpeg -y -i $full_filename  -pix_fmt yuvj422p -an -ss $second_extract -f mjpeg -t 1 -r 1 -y  $poster_full_filename";
425
                            exec($cmd);
17288 ariadna 426
 
427
 
17002 efrain 428
                            $ok = $storage->putFile($target_path, $mediaFile->uuid, $poster_full_filename);
429
                            $ok = $ok && $storage->putFile($target_path, $mediaFile->uuid, $full_filename);
17288 ariadna 430
 
431
                            if ($ok) {
432
 
433
 
17002 efrain 434
                                $mediaFile->type    = $media_type;
435
                                $mediaFile->file    = basename($media_filename);
436
                                $mediaFile->preview = basename($poster_filename);
17288 ariadna 437
 
438
                                if ($fileMapper->update($mediaFile)) {
439
 
17002 efrain 440
                                    $videoConvert = new VideoConvert();
441
                                    $videoConvert->uuid     = $mediaFile->uuid;
442
                                    $videoConvert->filename = basename($media_filename);
443
                                    $videoConvert->type     = VideoConvert::TYPE_MEDIA;
17288 ariadna 444
 
17002 efrain 445
                                    $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
446
                                    $videoConvertMapper->insert($videoConvert);
447
                                }
448
                            }
17288 ariadna 449
 
450
                            // @unlink($full_filename);
17002 efrain 451
                            //@unlink($generate_full_filename);
17288 ariadna 452
 
453
 
454
 
17002 efrain 455
                        } catch (\Throwable $e) {
17288 ariadna 456
 
17002 efrain 457
                            $fileMapper->delete($mediaFile);
17288 ariadna 458
 
459
 
17002 efrain 460
                            return new JsonModel([
461
                                'success'   => false,
462
                                'data'   => 'ERROR_UPLOAD_FILE'
463
                            ]);
464
                        }
17288 ariadna 465
                    }
466
 
17002 efrain 467
                    $this->logger->info('Se agrego el archivo a la media library ' . $mediaFile->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
17288 ariadna 468
 
17002 efrain 469
                    return new JsonModel([
470
                        'success'   => true,
471
                        'data'   => 'LABEL_RECORD_ADDED'
472
                    ]);
473
                } else {
474
                    $data = [
475
                        'success'   => false,
476
                        'data'      => $fileMapper->getError()
477
                    ];
478
                }
17288 ariadna 479
 
17002 efrain 480
                return new JsonModel($data);
481
            } else {
482
                $messages = [];
483
                $form_messages = (array) $form->getMessages();
17288 ariadna 484
                foreach ($form_messages  as $fieldname => $field_messages) {
485
 
17002 efrain 486
                    $messages[$fieldname] = array_values($field_messages);
487
                }
17288 ariadna 488
 
17002 efrain 489
                return new JsonModel([
490
                    'success'   => false,
491
                    'data'   => $messages
492
                ]);
493
            }
494
        } else {
495
            $data = [
496
                'success' => false,
497
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
498
            ];
17288 ariadna 499
 
17002 efrain 500
            return new JsonModel($data);
501
        }
17288 ariadna 502
 
17002 efrain 503
        return new JsonModel($data);
504
    }
17288 ariadna 505
 
17002 efrain 506
    /**
507
     *
508
     * Borrar un perfil excepto el público
509
     * @return \Laminas\View\Model\JsonModel
510
     */
511
    public function deleteAction()
512
    {
513
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
514
        $currentCompany     = $currentUserPlugin->getCompany();
515
        $currentUser        = $currentUserPlugin->getUser();
17288 ariadna 516
 
17002 efrain 517
        $request    = $this->getRequest();
518
        $id   = $this->params()->fromRoute('id');
17288 ariadna 519
 
520
 
17002 efrain 521
        $fileMapper = MediaFileMapper::getInstance($this->adapter);
522
        $file = $fileMapper->fetchOneByUuid($id);
17288 ariadna 523
        if (!$file) {
17002 efrain 524
            return new JsonModel([
525
                'success'   => false,
526
                'data'   => 'ERROR_MEDIA_FILE_NOT_FOUND'
527
            ]);
528
        }
17288 ariadna 529
 
530
        if ($file->company_id != $currentCompany->id) {
17002 efrain 531
            return new JsonModel([
532
                'success'   => false,
533
                'data'   => 'ERROR_UNAUTHORIZED'
534
            ]);
535
        }
536
 
17288 ariadna 537
 
538
 
539
        if ($request->isPost()) {
540
 
541
 
542
 
17002 efrain 543
            $result = $fileMapper->delete($file);
17288 ariadna 544
            if ($result) {
17002 efrain 545
                $this->logger->info('Se borro el el archivo de la media query : ' .  $file->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
17288 ariadna 546
 
17018 efrain 547
                $storage = Storage::getInstance($this->config, $this->adapter);
17002 efrain 548
                $target_path = $storage->getPathMedia();
17288 ariadna 549
 
17002 efrain 550
                $storage->deleteFile($target_path, $file->uuid, $file->file);
551
 
17288 ariadna 552
 
553
                if ($file->type == MediaFile::TYPE_VIDEO) {
17002 efrain 554
                    $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
555
                    $videoConvertMapper->deleteByUuidAndType($file->uuid, $file->type);
556
                }
17288 ariadna 557
 
558
 
17002 efrain 559
                $data = [
560
                    'success' => true,
561
                    'data' => 'LABEL_RECORD_DELETED'
562
                ];
563
            } else {
17288 ariadna 564
 
17002 efrain 565
                $data = [
566
                    'success'   => false,
567
                    'data'      => $fileMapper->getError()
568
                ];
17288 ariadna 569
 
17002 efrain 570
                return new JsonModel($data);
571
            }
572
        } else {
573
            $data = [
574
                'success' => false,
575
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
576
            ];
17288 ariadna 577
 
17002 efrain 578
            return new JsonModel($data);
579
        }
17288 ariadna 580
 
17002 efrain 581
        return new JsonModel($data);
582
    }
583
}