Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 15394 | Rev 15459 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
15338 efrain 1
<?php
2
declare(strict_types=1);
3
 
4
namespace LeadersLinked\Controller;
5
 
6
use Laminas\Db\Adapter\AdapterInterface;
7
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
8
use Laminas\Mvc\Controller\AbstractActionController;
9
use Laminas\Log\LoggerInterface;
10
use Laminas\View\Model\ViewModel;
11
use Laminas\View\Model\JsonModel;
12
use LeadersLinked\Library\Functions;
13
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
14
use LeadersLinked\Library\Image;
15
use LeadersLinked\Mapper\CompanyMapper;
16
use LeadersLinked\Mapper\CompanyMicrolearningTopicMapper;
17
use LeadersLinked\Model\CompanyMicrolearningTopic;
18
use LeadersLinked\Form\TopicAddForm;
19
use LeadersLinked\Form\TopicEditForm;
20
use LeadersLinked\Mapper\CompanyMicrolearningCapsuleMapper;
21
use LeadersLinked\Form\MyPrivateNetworkIntroForm;
22
use LeadersLinked\Mapper\NetworkMapper;
23
use LeadersLinked\Form\MyPrivateNetworkStylesFilter;
24
use LeadersLinked\Form\MyPrivateNetworkStylesForm;
25
use LeadersLinked\Form\MyPrivateNetworkLogoForm;
15394 efrain 26
use LeadersLinked\Form\MyPrivateNetworkCalendarForm;
15451 efrain 27
use LeadersLinked\Mapper\ThemeMapper;
15338 efrain 28
 
29
 
30
class MyPrivateNetworkController extends AbstractActionController
31
{
32
    /**
33
     *
34
     * @var AdapterInterface
35
     */
36
    private $adapter;
37
 
38
 
39
    /**
40
     *
41
     * @var AbstractAdapter
42
     */
43
    private $cache;
44
 
45
    /**
46
     *
47
     * @var  LoggerInterface
48
     */
49
    private $logger;
50
 
51
 
52
    /**
53
     *
54
     * @var array
55
     */
56
    private $config;
57
 
58
    /**
59
     *
60
     * @param AdapterInterface $adapter
61
     * @param AbstractAdapter $cache
62
     * @param LoggerInterface $logger
63
     * @param array $config
64
     */
65
    public function __construct($adapter, $cache , $logger,  $config)
66
    {
67
        $this->adapter      = $adapter;
68
        $this->cache        = $cache;
69
        $this->logger       = $logger;
70
        $this->config       = $config;
71
 
72
    }
73
 
74
    /**
75
     *
76
     * Generación del listado de perfiles
77
     * {@inheritDoc}
78
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
79
     */
80
    public function indexAction()
81
    {
82
 
83
        return new JsonModel([
84
            'success' => false,
85
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
86
        ]);
87
 
88
    }
89
 
90
    public function introAction()
91
    {
92
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
93
        $currentUser        = $currentUserPlugin->getUser();
94
 
95
        $currentNetworkPlugin =  $this->plugin('currentNetworkPlugin');
96
        $currentNetwork = $currentNetworkPlugin->getNetwork();
97
 
98
        $networkMapper = NetworkMapper::getInstance($this->adapter);
99
        $network = $networkMapper->fetchOne($currentNetwork->id);
100
 
101
 
102
        $request    = $this->getRequest();
103
        if($request->isGet()) {
104
 
105
            $form = new MyPrivateNetworkIntroForm();
106
            $form->setData([
107
                'intro' => $network->intro
108
            ]);
109
 
110
            $this->layout()->setTemplate('layout/layout-backend');
111
            $viewModel = new ViewModel();
112
            $viewModel->setTemplate('leaders-linked/my-private-network/intro.phtml');
113
            $viewModel->setVariable('form', $form);
114
            return $viewModel ;
115
 
116
        }
117
        else if($request->isPost()) {
118
 
119
            $form = new  MyPrivateNetworkIntroForm();;
120
            $dataPost = $request->getPost()->toArray();
121
 
122
            $form->setData($dataPost);
123
 
124
            if($form->isValid()) {
125
                $dataPost = (array) $form->getData();
126
 
127
                $network->intro = $dataPost['intro'];
128
                if($networkMapper->update($network)) {
129
 
130
                    $this->logger->info('Se actualizo el texto intro de la red : ' . $network->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
131
 
132
                    $data = [
133
                        'success'   => true,
134
                        'data'   => 'LABEL_RECORD_UPDATED'
135
                    ];
136
                } else {
137
                    $data = [
138
                        'success'   => false,
139
                        'data'      => $networkMapper->getError()
140
                    ];
141
 
142
                }
143
 
144
                return new JsonModel($data);
145
 
146
            } else {
147
                $messages = [];
148
                $form_messages = (array) $form->getMessages();
149
                foreach($form_messages  as $fieldname => $field_messages)
150
                {
151
 
152
                    $messages[$fieldname] = array_values($field_messages);
153
                }
154
 
155
                return new JsonModel([
156
                    'success'   => false,
157
                    'data'   => $messages
158
                ]);
159
            }
160
 
161
        } else {
162
            $data = [
163
                'success' => false,
164
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
165
            ];
166
 
167
            return new JsonModel($data);
168
        }
169
 
170
        return new JsonModel($data);
171
    }
172
 
173
 
174
    public function stylesAndColorsAction()
175
    {
176
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
177
        $currentUser        = $currentUserPlugin->getUser();
178
 
179
        $currentNetworkPlugin =  $this->plugin('currentNetworkPlugin');
180
        $currentNetwork = $currentNetworkPlugin->getNetwork();
181
 
182
        $networkMapper = NetworkMapper::getInstance($this->adapter);
183
        $network = $networkMapper->fetchOne($currentNetwork->id);
184
 
185
 
186
        $request    = $this->getRequest();
187
        if($request->isGet()) {
188
 
15394 efrain 189
            $search_key = 'css_';
190
            $search_length = strlen($search_key);
191
 
192
            $search_exclude_key = 'css_calendar_';
193
            $search_exclude_length = strlen($search_exclude_key);
194
 
195
 
15338 efrain 196
            $data = [];
197
            foreach($network as $key => $value)
198
            {
15394 efrain 199
 
200
                if(substr($key, 0, $search_length) == $search_key && substr($key, 0, $search_exclude_length) != $search_exclude_key )  {
15338 efrain 201
                    $data[$key] = $network->{$key};
202
 
203
                }
204
            }
15394 efrain 205
 
15338 efrain 206
            $form = new MyPrivateNetworkStylesForm();
207
            $form->setData($data);
208
 
209
            $this->layout()->setTemplate('layout/layout-backend');
210
            $viewModel = new ViewModel();
211
            $viewModel->setTemplate('leaders-linked/my-private-network/styles-and-colors.phtml');
212
            $viewModel->setVariable('form', $form);
213
            return $viewModel ;
214
 
215
        }
216
        else if($request->isPost()) {
217
 
218
            $form = new  MyPrivateNetworkStylesForm();
219
            $dataPost = $request->getPost()->toArray();
220
 
221
            $form->setData($dataPost);
222
 
223
            if($form->isValid()) {
15394 efrain 224
 
225
 
226
                $search_key = 'css_';
227
                $search_length = strlen($search_key);
228
 
229
                $search_exclude_key = 'css_calendar_';
230
                $search_exclude_length = strlen($search_exclude_key);
231
 
15338 efrain 232
                $dataPost = (array) $form->getData();
233
 
234
                foreach($network as $key => $value)
235
                {
15394 efrain 236
                    if(substr($key, 0, $search_length) == $search_key && substr($key, 0, $search_exclude_length) != $search_exclude_key )  {
15338 efrain 237
 
238
                        $network->{$key} = $dataPost[$key];
239
 
240
                    }
241
                }
242
 
243
                if($networkMapper->update($network)) {
244
 
245
                    $this->logger->info('Se actualizo los estilos y colores de la red : ' . $network->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
246
 
247
                    $data = [
248
                        'success'   => true,
249
                        'data'   => 'LABEL_RECORD_UPDATED'
250
                    ];
251
                } else {
252
                    $data = [
253
                        'success'   => false,
254
                        'data'      => $networkMapper->getError()
255
                    ];
256
 
257
                }
258
 
259
                return new JsonModel($data);
260
 
261
            } else {
262
                $messages = [];
263
                $form_messages = (array) $form->getMessages();
264
                foreach($form_messages  as $fieldname => $field_messages)
265
                {
266
 
267
                    $messages[$fieldname] = array_values($field_messages);
268
                }
269
 
270
                return new JsonModel([
271
                    'success'   => false,
272
                    'data'   => $messages
273
                ]);
274
            }
275
 
276
        } else {
277
            $data = [
278
                'success' => false,
279
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
280
            ];
281
 
282
            return new JsonModel($data);
283
        }
284
 
285
        return new JsonModel($data);
286
    }
287
 
288
    public function logoAction()
289
    {
290
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
291
        $currentUser        = $currentUserPlugin->getUser();
292
 
293
        $currentNetworkPlugin =  $this->plugin('currentNetworkPlugin');
294
        $currentNetwork = $currentNetworkPlugin->getNetwork();
295
 
296
        $networkMapper = NetworkMapper::getInstance($this->adapter);
297
        $network = $networkMapper->fetchOne($currentNetwork->id);
298
 
15451 efrain 299
        $themeMapper = ThemeMapper::getInstance($this->adapter);
300
        $theme = $themeMapper->fetchOne($currentNetwork->theme_id);
15338 efrain 301
 
15451 efrain 302
 
303
 
15338 efrain 304
        $request    = $this->getRequest();
305
        if($request->isGet()) {
306
 
15451 efrain 307
 
308
 
15338 efrain 309
            $form = new MyPrivateNetworkLogoForm();
310
 
311
 
312
            $this->layout()->setTemplate('layout/layout-backend');
313
            $viewModel = new ViewModel();
314
            $viewModel->setTemplate('leaders-linked/my-private-network/logo.phtml');
315
            $viewModel->setVariables([
316
                'form' => $form,
15451 efrain 317
                'image_size' => $theme->imagesize_logo,
15338 efrain 318
 
319
            ]);
320
 
321
            return $viewModel ;
322
 
323
        }
324
        else if($request->isPost()) {
325
 
326
            $form = new  MyPrivateNetworkLogoForm();
327
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
328
 
329
            $form->setData($dataPost);
330
 
331
            if($form->isValid()) {
332
                $dataPost = (array) $form->getData();
333
 
334
 
15451 efrain 335
                list($target_width, $target_height) = explode('x', $theme->imagesize_logo);
15338 efrain 336
                $path = $this->config['leaderslinked.fullpath.network'];
337
 
338
                $target_path = $path . $currentNetwork->uuid;
339
                if(!file_exists($target_path)) {
340
                    mkdir($target_path, 0755, true);
341
                }
342
 
343
 
344
                $files         = $this->getRequest()->getFiles()->toArray();
345
                $tmp_filename  = $files['file']['tmp_name'];
346
 
347
               try {
348
                    if($network->logo) {
349
                       if(!image ::delete($target_path, $network->logo)) {
350
                            return new JsonModel([
351
                                'success'   => false,
352
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
353
                            ]);
354
                        }
355
                    }
356
 
357
 
358
                    $filename = 'logo.png';
15376 efrain 359
                    $crop_to_dimensions = false;
15338 efrain 360
                    if(Image::uploadImage($tmp_filename, $target_path, $filename, $target_width, $target_height, $crop_to_dimensions)) {
361
                       $network->logo = $filename;
362
                       ;
363
                    }
364
                } catch(\Throwable $e) {
365
                    error_log($e->getTraceAsString());
366
                }
367
 
368
 
369
                if($networkMapper->update($network)) {
370
 
371
                    $this->logger->info('Se actualizo el logo de la red : ' . $network->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
372
 
373
                    $data = [
374
                        'success'   => true,
375
                        'data'   => 'LABEL_RECORD_UPDATED'
376
                    ];
377
                } else {
378
                    $data = [
379
                        'success'   => false,
380
                        'data'      => $networkMapper->getError()
381
                    ];
382
 
383
                }
384
 
385
                return new JsonModel($data);
386
 
387
            } else {
388
                $messages = [];
389
                $form_messages = (array) $form->getMessages();
390
                foreach($form_messages  as $fieldname => $field_messages)
391
                {
392
 
393
                    $messages[$fieldname] = array_values($field_messages);
394
                }
395
 
396
                return new JsonModel([
397
                    'success'   => false,
398
                    'data'   => $messages
399
                ]);
400
            }
401
 
402
        } else {
403
            $data = [
404
                'success' => false,
405
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
406
            ];
407
 
408
            return new JsonModel($data);
409
        }
410
 
411
        return new JsonModel($data);
412
    }
413
 
414
    public function navbarAction()
415
    {
416
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
417
        $currentUser        = $currentUserPlugin->getUser();
418
 
419
        $currentNetworkPlugin =  $this->plugin('currentNetworkPlugin');
420
        $currentNetwork = $currentNetworkPlugin->getNetwork();
421
 
422
        $networkMapper = NetworkMapper::getInstance($this->adapter);
423
        $network = $networkMapper->fetchOne($currentNetwork->id);
424
 
425
 
15451 efrain 426
        $themeMapper = ThemeMapper::getInstance($this->adapter);
427
        $theme = $themeMapper->fetchOne($currentNetwork->theme_id);
428
 
15338 efrain 429
        $request    = $this->getRequest();
430
        if($request->isGet()) {
431
 
15451 efrain 432
 
433
 
15338 efrain 434
            $form = new MyPrivateNetworkLogoForm();
435
 
436
 
437
            $this->layout()->setTemplate('layout/layout-backend');
438
            $viewModel = new ViewModel();
439
            $viewModel->setTemplate('leaders-linked/my-private-network/navbar.phtml');
440
            $viewModel->setVariables([
441
                'form' => $form,
15451 efrain 442
                'image_size' => $theme->imagesize_navbar,
15338 efrain 443
 
444
            ]);
445
 
446
            return $viewModel ;
447
 
448
        }
449
        else if($request->isPost()) {
450
 
451
            $form = new  MyPrivateNetworkLogoForm();
452
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
453
 
454
            $form->setData($dataPost);
455
 
456
            if($form->isValid()) {
457
                $dataPost = (array) $form->getData();
458
 
459
 
15451 efrain 460
                list($target_width, $target_height) = explode('x', $theme->imagesize_navbar);
15338 efrain 461
                $path = $this->config['leaderslinked.fullpath.network'];
462
 
463
                $target_path = $path . $currentNetwork->uuid;
464
                if(!file_exists($target_path)) {
465
                    mkdir($target_path, 0755, true);
466
                }
467
 
468
 
469
                $files         = $this->getRequest()->getFiles()->toArray();
470
                $tmp_filename  = $files['file']['tmp_name'];
471
 
472
                try {
473
                    if($network->navbar) {
474
                        if(!image ::delete($target_path, $network->navbar)) {
475
                            return new JsonModel([
476
                                'success'   => false,
477
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
478
                            ]);
479
                        }
480
                    }
481
 
482
 
483
                    $filename = 'navbar.png';
15376 efrain 484
                    $crop_to_dimensions = false;
15338 efrain 485
                    if(Image::uploadImage($tmp_filename, $target_path, $filename, $target_width, $target_height, $crop_to_dimensions)) {
486
                        $network->navbar = $filename;
487
                        ;
488
                    }
489
                } catch(\Throwable $e) {
490
                    error_log($e->getTraceAsString());
491
                }
492
 
493
 
494
                if($networkMapper->update($network)) {
495
 
496
                    $this->logger->info('Se actualizo el navbar de la red : ' . $network->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
497
 
498
                    $data = [
499
                        'success'   => true,
500
                        'data'   => 'LABEL_RECORD_UPDATED'
501
                    ];
502
                } else {
503
                    $data = [
504
                        'success'   => false,
505
                        'data'      => $networkMapper->getError()
506
                    ];
507
 
508
                }
509
 
510
                return new JsonModel($data);
511
 
512
            } else {
513
                $messages = [];
514
                $form_messages = (array) $form->getMessages();
515
                foreach($form_messages  as $fieldname => $field_messages)
516
                {
517
 
518
                    $messages[$fieldname] = array_values($field_messages);
519
                }
520
 
521
                return new JsonModel([
522
                    'success'   => false,
523
                    'data'   => $messages
524
                ]);
525
            }
526
 
527
        } else {
528
            $data = [
529
                'success' => false,
530
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
531
            ];
532
 
533
            return new JsonModel($data);
534
        }
535
 
536
        return new JsonModel($data);
537
    }
538
 
539
    public function faviconAction()
540
    {
541
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
542
        $currentUser        = $currentUserPlugin->getUser();
543
 
544
        $currentNetworkPlugin =  $this->plugin('currentNetworkPlugin');
545
        $currentNetwork = $currentNetworkPlugin->getNetwork();
546
 
547
        $networkMapper = NetworkMapper::getInstance($this->adapter);
548
        $network = $networkMapper->fetchOne($currentNetwork->id);
549
 
15451 efrain 550
        $themeMapper = ThemeMapper::getInstance($this->adapter);
551
        $theme = $themeMapper->fetchOne($currentNetwork->theme_id);
15338 efrain 552
 
553
        $request    = $this->getRequest();
554
        if($request->isGet()) {
555
 
15451 efrain 556
 
557
 
558
 
15338 efrain 559
            $form = new MyPrivateNetworkLogoForm();
560
 
561
 
562
            $this->layout()->setTemplate('layout/layout-backend');
563
            $viewModel = new ViewModel();
564
            $viewModel->setTemplate('leaders-linked/my-private-network/favico.phtml');
565
            $viewModel->setVariables([
566
                'form' => $form,
15451 efrain 567
                'image_size' => $theme->imagesize_favico,
15338 efrain 568
 
569
            ]);
570
 
571
            return $viewModel ;
572
 
573
        }
574
        else if($request->isPost()) {
575
 
576
            $form = new  MyPrivateNetworkLogoForm();
577
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
578
 
579
            $form->setData($dataPost);
580
 
581
            if($form->isValid()) {
582
                $dataPost = (array) $form->getData();
583
 
584
 
15451 efrain 585
                list($target_width, $target_height) = explode('x', $theme->imagesize_favico);
15338 efrain 586
                $path = $this->config['leaderslinked.fullpath.network'];
587
 
588
                $target_path = $path . $currentNetwork->uuid;
589
                if(!file_exists($target_path)) {
590
                    mkdir($target_path, 0755, true);
591
                }
592
 
593
 
594
                $files         = $this->getRequest()->getFiles()->toArray();
595
                $tmp_filename  = $files['file']['tmp_name'];
596
 
597
                try {
598
                    if($network->favico) {
599
                        if(!image ::delete($target_path, $network->favico)) {
600
                            return new JsonModel([
601
                                'success'   => false,
602
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
603
                            ]);
604
                        }
605
                    }
606
 
607
 
608
                    $filename = 'favico.png';
15376 efrain 609
                    $crop_to_dimensions = false;
15338 efrain 610
                    if(Image::uploadImage($tmp_filename, $target_path, $filename, $target_width, $target_height, $crop_to_dimensions)) {
611
                        $network->favico = $filename;
612
                        ;
613
                    }
614
                } catch(\Throwable $e) {
615
                    error_log($e->getTraceAsString());
616
                }
617
 
618
 
619
                if($networkMapper->update($network)) {
620
 
621
                    $this->logger->info('Se actualizo el favico de la red : ' . $network->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
622
 
623
                    $data = [
624
                        'success'   => true,
625
                        'data'   => 'LABEL_RECORD_UPDATED'
626
                    ];
627
                } else {
628
                    $data = [
629
                        'success'   => false,
630
                        'data'      => $networkMapper->getError()
631
                    ];
632
 
633
                }
634
 
635
                return new JsonModel($data);
636
 
637
            } else {
638
                $messages = [];
639
                $form_messages = (array) $form->getMessages();
640
                foreach($form_messages  as $fieldname => $field_messages)
641
                {
642
 
643
                    $messages[$fieldname] = array_values($field_messages);
644
                }
645
 
646
                return new JsonModel([
647
                    'success'   => false,
648
                    'data'   => $messages
649
                ]);
650
            }
651
 
652
        } else {
653
            $data = [
654
                'success' => false,
655
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
656
            ];
657
 
658
            return new JsonModel($data);
659
        }
660
 
661
        return new JsonModel($data);
662
    }
663
 
15394 efrain 664
 
665
    public function calendarAction()
666
    {
667
        $currentUserPlugin  = $this->plugin('currentUserPlugin');
668
        $currentUser        = $currentUserPlugin->getUser();
669
 
670
        $currentNetworkPlugin =  $this->plugin('currentNetworkPlugin');
671
        $currentNetwork = $currentNetworkPlugin->getNetwork();
672
 
673
        $networkMapper = NetworkMapper::getInstance($this->adapter);
674
        $network = $networkMapper->fetchOne($currentNetwork->id);
675
 
676
 
677
        $request    = $this->getRequest();
678
        if($request->isGet()) {
679
 
680
            $search_key = 'css_calendar_';
681
            $search_length = strlen($search_key);
682
 
683
 
684
            $data = [];
685
            foreach($network as $key => $value)
686
            {
687
                if(substr($key, 0,  $search_length) ==  $search_key) {
688
                    $data[$key] = $network->{$key};
689
 
690
                }
691
            }
692
 
693
 
694
            $form = new MyPrivateNetworkCalendarForm();
695
            $form->setData($data);
696
 
697
            $this->layout()->setTemplate('layout/layout-backend');
698
            $viewModel = new ViewModel();
699
            $viewModel->setTemplate('leaders-linked/my-private-network/calendar.phtml');
700
            $viewModel->setVariable('form', $form);
701
            return $viewModel ;
702
 
703
        }
704
        else if($request->isPost()) {
705
 
706
            $form = new  MyPrivateNetworkCalendarForm();
707
            $dataPost = $request->getPost()->toArray();
708
 
709
            $form->setData($dataPost);
710
 
711
            if($form->isValid()) {
712
                $dataPost = (array) $form->getData();
713
 
714
 
715
                $search_key = 'css_calendar_';
716
                $search_length = strlen($search_key);
717
 
718
 
719
                foreach($network as $key => $value)
720
                {
721
                    if(substr($key, 0,  $search_length) ==  $search_key) {
722
 
723
                        $network->{$key} = $dataPost[$key];
724
 
725
                    }
726
                }
727
 
728
                if($networkMapper->update($network)) {
729
 
730
                    $this->logger->info('Se actualizo los colores del calendario de la red : ' . $network->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
731
 
732
                    $data = [
733
                        'success'   => true,
734
                        'data'   => 'LABEL_RECORD_UPDATED'
735
                    ];
736
                } else {
737
                    $data = [
738
                        'success'   => false,
739
                        'data'      => $networkMapper->getError()
740
                    ];
741
 
742
                }
743
 
744
                return new JsonModel($data);
745
 
746
            } else {
747
                $messages = [];
748
                $form_messages = (array) $form->getMessages();
749
                foreach($form_messages  as $fieldname => $field_messages)
750
                {
751
 
752
                    $messages[$fieldname] = array_values($field_messages);
753
                }
754
 
755
                return new JsonModel([
756
                    'success'   => false,
757
                    'data'   => $messages
758
                ]);
759
            }
760
 
761
        } else {
762
            $data = [
763
                'success' => false,
764
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
765
            ];
766
 
767
            return new JsonModel($data);
768
        }
769
 
770
        return new JsonModel($data);
771
    }
772
 
773
 
15338 efrain 774
}