Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 6388 Rev 6749
Línea 1... Línea 1...
1
<?php
1
<?php
Línea 2... Línea -...
2
 
-
 
3
/**
-
 
4
 * 
-
 
5
 * Controlador: Mis Perfiles 
-
 
6
 * 
-
 
7
 */
-
 
8
 
2
 
Línea 9... Línea 3...
9
declare(strict_types=1);
3
declare(strict_types=1);
Línea 10... Línea 4...
10
 
4
 
11
namespace LeadersLinked\Controller;
5
namespace LeadersLinked\Controller;
12
 
6
 
13
use Laminas\Db\Adapter\AdapterInterface;
7
use Laminas\Db\Adapter\AdapterInterface;
14
use Laminas\Cache\Storage\Adapter\AbstractAdapter;
8
use LeadersLinked\Cache\CacheInterface;
Línea 15... Línea 9...
15
use Laminas\Mvc\Controller\AbstractActionController;
9
use Laminas\Mvc\Controller\AbstractActionController;
Línea 32... Línea 26...
32
use Laminas\View\Model\JsonModel;
26
use Laminas\View\Model\JsonModel;
33
use LeadersLinked\Form\InMail\SendForm;
27
use LeadersLinked\Form\InMail\SendForm;
34
use LeadersLinked\Model\Message;
28
use LeadersLinked\Model\Message;
35
use LeadersLinked\Model\VideoConvert;
29
use LeadersLinked\Model\VideoConvert;
36
use LeadersLinked\Mapper\VideoConvertMapper;
30
use LeadersLinked\Mapper\VideoConvertMapper;
-
 
31
use Laminas\Mvc\I18n\Translator;
Línea 37... Línea 32...
37
 
32
 
38
class InMailController extends AbstractActionController
33
class InMailController extends AbstractActionController
39
{
34
{
40
    /**
35
    /**
41
     *
36
     *
42
     * @var AdapterInterface
37
     * @var AdapterInterface
43
     */
38
     */
44
    private $adapter;
39
    private $adapter;
45
 
40
    
46
 
41
    
47
    /**
42
    /**
48
     *
43
     *
49
     * @var AbstractAdapter
44
     * @var CacheInterface
50
     */
45
     */
51
    private $cache;
46
    private $cache;
52
 
47
    
53
    /**
48
    /**
54
     *
49
     *
55
     * @var  LoggerInterface
50
     * @var  LoggerInterface
56
     */
51
     */
57
    private $logger;
52
    private $logger;
58
 
53
    
59
 
54
    
60
    /**
55
    /**
61
     *
56
     *
62
     * @var array
57
     * @var array
63
     */
58
     */
64
    private $config;
59
    private $config;
-
 
60
    
-
 
61
    /**
-
 
62
     *
-
 
63
     * @var Translator
-
 
64
     */
-
 
65
    private $translator;
65
 
66
    
66
    /**
67
    /**
67
     *
68
     *
68
     * @param AdapterInterface $adapter
69
     * @param AdapterInterface $adapter
69
     * @param AbstractAdapter $cache
70
     * @param CacheInterface $cache
-
 
71
     * @param LoggerInterface $logger
70
     * @param LoggerInterface $logger
72
     * @param Translator $translator
71
     * @param array $config
73
     * @param array $config
72
     */
74
     */
73
    public function __construct($adapter, $cache, $logger,  $config)
75
    public function __construct($adapter, $cache, $logger,  $config, $translator)
74
    {
76
    {
75
        $this->adapter      = $adapter;
77
        $this->adapter      = $adapter;
76
        $this->cache        = $cache;
78
        $this->cache        = $cache;
77
        $this->logger       = $logger;
79
        $this->logger       = $logger;
-
 
80
        $this->config       = $config;
78
        $this->config       = $config;
81
        $this->translator = $translator;
Línea 79... Línea 82...
79
    }
82
    }
80
 
83
 
81
    /**
84
    /**
Línea 371... Línea 374...
371
                    $timeElapsedString = $this->timeAgo($record->added_on, $now);
374
                    $timeElapsedString = $this->timeAgo($record->added_on, $now);
Línea 372... Línea 375...
372
 
375
 
373
 
376
 
-
 
377
                    if ($record->sender_id == $currentUser->id) {
374
                    if ($record->sender_id == $currentUser->id) {
378
                        array_push($messages, [
375
                        array_push($messages, [
379
                            'uuid' => $record->uuid,
376
                            'sender_name' => trim($currentUser->first_name . ' ' . $currentUser->last_name),
380
                            'sender_name' => trim($currentUser->first_name . ' ' . $currentUser->last_name),
377
                            'sender_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'filename' => $currentUser->image, 'code' => $currentUser->uuid]),
381
                            'sender_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'filename' => $currentUser->image, 'code' => $currentUser->uuid]),
378
                            'sender_profile' => $this->url()->fromRoute('profile/view', ['id' => $currentUser->uuid]),
382
                            'sender_profile' => $this->url()->fromRoute('profile/view', ['id' => $currentUser->uuid]),
Línea 388... Línea 392...
388
                    } else {
392
                    } else {
Línea 389... Línea 393...
389
 
393
 
-
 
394
 
390
 
395
 
391
 
396
                        array_push($messages, [
392
                        array_push($messages, [
397
                            'uuid' => $record->uuid,
393
                            'sender_name' => trim($user->first_name . ' ' . $user->last_name),
398
                            'sender_name' => trim($user->first_name . ' ' . $user->last_name),
394
                            'sender_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'filename' => $user->image, 'code' => $user->uuid]),
399
                            'sender_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'filename' => $user->image, 'code' => $user->uuid]),
Línea 811... Línea 816...
811
     * @param string $now
816
     * @param string $now
812
     * @return string
817
     * @return string
813
     */
818
     */
814
    private function timeAgo($timestamp, $now = '')
819
    private function timeAgo($timestamp, $now = '')
815
    {
820
    {
816
 
821
        
817
        if ($now) {
822
        if ($now) {
818
            $datetime1 = \DateTime::createFromFormat('Y-m-d H:i:s', $now);
823
            $datetime1 = \DateTime::createFromFormat('Y-m-d H:i:s', $now);
819
        } else {
824
        } else {
820
            $now = date('Y-m-d H:i:s');
825
            $now = date('Y-m-d H:i:s');
821
            $datetime1 = date_create($now);
826
            $datetime1 = date_create($now);
822
        }
827
        }
823
        $datetime2 = date_create($timestamp);
828
        $datetime2 = date_create($timestamp);
824
 
829
        
825
        $diff = date_diff($datetime1, $datetime2);
830
        $diff = date_diff($datetime1, $datetime2);
826
        $timemsg = '';
831
        $timemsg = '';
827
        if ($diff->y > 0) {
832
        if ($diff->y > 0) {
828
            $timemsg = $diff->y . ' año' . ($diff->y > 1 ? "s" : '');
833
            $timemsg = $diff->y . ' ' .($diff->y > 1 ? $this->translator->translate('LABEL_YEARS_SMALL')  : $this->translator->translate('LABEL_YEAR_SMALL') );
829
        } else if ($diff->m > 0) {
834
        } else if ($diff->m > 0) {
830
            $timemsg = $diff->m . ' mes' . ($diff->m > 1 ? "es" : '');
835
            $timemsg = $diff->m  . ' ' .($diff->m > 1 ? $this->translator->translate('LABEL_MONTHS_SMALL')  : $this->translator->translate('LABEL_MONTH_SMALL') );
831
        } else if ($diff->d > 0) {
836
        } else if ($diff->d > 0) {
832
            $timemsg = $diff->d . ' dia' . ($diff->d > 1 ? "s" : '');
837
            $timemsg = $diff->d . ' ' .($diff->d > 1 ? $this->translator->translate('LABEL_DAYS_SMALL')  : $this->translator->translate('LABEL_DAY_SMALL') );
833
        } else if ($diff->h > 0) {
838
        } else if ($diff->h > 0) {
834
            $timemsg = $diff->h . ' hora' . ($diff->h > 1 ? "s" : '');
839
            $timemsg = $diff->h  . ' ' .($diff->h > 1 ? $this->translator->translate('LABEL_HOURS_SMALL')  : $this->translator->translate('LABEL_HOUR_SMALL') );
835
        } else if ($diff->i > 0) {
840
        } else if ($diff->i > 0) {
836
            $timemsg = $diff->i . ' minuto' . ($diff->i > 1 ? "s" : '');
841
            $timemsg = $diff->i  . ' ' .($diff->i > 1 ? $this->translator->translate('LABEL_MINUTES_SMALL')  : $this->translator->translate('LABEL_MINUTE_SMALL') );
837
        } else if ($diff->s > 0) {
842
        } else if ($diff->s > 0) {
838
            $timemsg = $diff->s . ' segundo' . ($diff->s > 1 ? "s" : '');
843
            $timemsg = $diff->s  . ' ' . ($diff->s > 1 ? $this->translator->translate('LABEL_SECONDS_SMALL')  : $this->translator->translate('LABEL_SECOND_SMALL') );
839
        }
844
        }
840
        if (!$timemsg) {
845
        if (!$timemsg) {
841
            $timemsg = "Ahora";
846
            $timemsg = $this->translator->translate('LABEL_NOW') ;
842
        } else {
847
        } else {
843
            $timemsg = $timemsg . '';
848
            $timemsg = $this->translator->translate('LABEL_AGO_SMALL') . ' '. $timemsg . '';
844
        }
849
        }
845
        return $timemsg;
850
        return $timemsg;
-
 
851
        
846
    }
852
    }
Línea 847... Línea 853...
847
 
853
 
848
 
854
 
849
    public function deleteAction()
855
    public function deleteAction()
850
    {
856
    {
851
        $request = $this->getRequest();
857
        $request = $this->getRequest();
852
        if ($request->isPost()) {
858
        if ($request->isPost()) {
853
            $currentUserPlugin = $this->plugin('currentUserPlugin');
859
            $currentUserPlugin = $this->plugin('currentUserPlugin');
854
            $currentUser = $currentUserPlugin->getUser();
860
            $currentUser = $currentUserPlugin->getUser();
-
 
861
            
-
 
862
            $id = $this->params()->fromRoute('id');
-
 
863
            if (!$id) {
-
 
864
                return new JsonModel([
-
 
865
                    'success' => false,
-
 
866
                    'data' => 'ERROR_PARAMETERS_ARE_INVALID'
-
 
867
                ]);
-
 
868
            }
-
 
869
            
-
 
870
            $userMapper = UserMapper::getInstance($this->adapter);
-
 
871
            $user = $userMapper->fetchOneByUuid($id);
-
 
872
            if (!$user) {
-
 
873
                return new JsonModel([
-
 
874
                    'success' => false,
-
 
875
                    'data' => 'ERROR_REQUEST_IS_INVALID'
855
 
876
                ]);
856
            $conversation_id =  $this->params()->fromRoute('id');
877
            }
857
 
878
            
-
 
879
            $conversationMapper = ConversationMapper::getInstance($this->adapter);
858
            $conversationMapper = ConversationMapper::getInstance($this->adapter);
880
            $conversation = $conversationMapper->fetchOneByUserId1AndUserId2($currentUser->id, $user->id);
859
            $conversation = $conversationMapper->fetchAllByUserId($currentUser->id);
881
            
860
 
882
            
861
            if ($conversation) {
883
            if ($conversation) {
-
 
884
                
-
 
885
                if ($conversation->sender_id == $currentUser->id && $conversation->receiver_id == $user->id) {
-
 
886
                    $conversation->sender_status = Conversation::STATUS_DELETED;
-
 
887
                    if ($conversationMapper->update($conversation)) {
-
 
888
                        $response = [
-
 
889
                            'success' => true,
-
 
890
                            'data' => 'LABEL_CONVERSATION_WAS_DELETED'
-
 
891
                        ];
862
 
892
                    } else {
863
                if ($conversation[0]->sender_id && $conversation[0]->sender_id == $currentUser->id) {
893
                        
864
 
894
                        
865
                    return new JsonModel($this->deleteConversation($conversation[0]));
895
                        $response = [
-
 
896
                            'success' => false,
-
 
897
                            'data' => $conversationMapper->getError()
866
                } elseif ($conversation[0]->receiver_id && $conversation[0]->receiver_id == $currentUser->id) {
898
                        ];
867
                    return new JsonModel($this->deleteConversation($conversation[0]));
899
                    }
-
 
900
                }
-
 
901
                
-
 
902
                if ($conversation->receiver_id == $currentUser->id && $conversation->sender_id == $user->id) {
868
                }
903
                    $conversation->receiver_status = Conversation::STATUS_DELETED;
869
 
904
                    if ($conversationMapper->update($conversation)) {
870
                $response = [
905
                        $response = [
-
 
906
                            'success' => true,
-
 
907
                            'data' => 'LABEL_CONVERSATION_WAS_DELETED'
-
 
908
                        ];
-
 
909
                    } else {
-
 
910
                        
-
 
911
                        
-
 
912
                        $response = [
-
 
913
                            'success' => false,
-
 
914
                            'data' => $conversationMapper->getError()
871
                    'success' => false,
915
                        ];
-
 
916
                    }
-
 
917
                }
-
 
918
                
872
                    'data' => ' ERROR_UNAUTHORIZED'
919
                return new JsonModel($response);
873
                ];
920
                
874
            } else {
921
            } else {
875
                $response = [
922
                $response = [
876
                    'success' => false,
923
                    'success' => false,
877
                    'data' => 'ERROR_FEED_NOT_FOUND'
924
                    'data' => 'ERROR_CONVERSATION_NOT_FOUND'
878
                ];
925
                ];
879
            }
926
            }
880
 
927
            
881
            return new JsonModel($response);
928
            return new JsonModel($response);
882
        } else {
929
        } else {
883
            $response = [
930
            $response = [
884
                'success' => false,
931
                'success' => false,
885
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
932
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
886
            ];
933
            ];
887
        }
934
        }
888
 
935
        
889
        return new JsonModel($response);
-
 
890
    }
-
 
891
 
-
 
892
 
-
 
893
    private function deleteConversation($conversation)
-
 
894
    {
-
 
895
        $conversationMapper = ConversationMapper::getInstance($this->adapter);
-
 
896
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
897
        $currentUser = $currentUserPlugin->getUser();
-
 
898
 
-
 
899
        if ($conversation->sender_id == $currentUser->id) {
-
 
900
            $conversation->sender_status = Conversation::STATUS_DELETED;
-
 
901
            if ($conversationMapper->update($conversation)) {
-
 
902
                $response = [
-
 
903
                    'success' => true,
-
 
904
                    'data' => 'LABEL_FEED_WAS_DELETED'
-
 
905
                ];
-
 
906
            } else {
-
 
907
 
-
 
908
 
-
 
909
                $response = [
-
 
910
                    'success' => false,
-
 
911
                    'data' => $conversationMapper->getError()
-
 
912
                ];
-
 
913
            }
-
 
914
        }
-
 
915
 
-
 
916
        if ($conversation->receiver_id == $currentUser->id) {
-
 
917
            $conversation->receiver_status = Conversation::STATUS_DELETED;
-
 
918
            if ($conversationMapper->update($conversation)) {
-
 
919
                $response = [
-
 
920
                    'success' => true,
-
 
921
                    'data' => 'LABEL_FEED_WAS_DELETED'
-
 
922
                ];
-
 
923
            } else {
-
 
924
 
-
 
925
 
-
 
926
                $response = [
-
 
927
                    'success' => false,
-
 
928
                    'data' => $conversationMapper->getError()
-
 
929
                ];
-
 
930
            }
-
 
931
        }
-
 
932
 
-
 
933
        return $response;
936
        return new JsonModel($response);