Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 4808 Rev 5500
Línea 1... Línea 1...
1
<?php
1
<?php
-
 
2
 
2
/**
3
/**
3
 * 
4
 * 
4
 * Controlador: Mis Perfiles 
5
 * Controlador: Mis Perfiles 
5
 * 
6
 * 
6
 */
7
 */
-
 
8
 
7
declare(strict_types=1);
9
declare(strict_types=1);
Línea 8... Línea 10...
8
 
10
 
Línea 9... Línea 11...
9
namespace LeadersLinked\Controller;
11
namespace LeadersLinked\Controller;
Línea 56... Línea 58...
56
    /**
58
    /**
57
     *
59
     *
58
     * @var AdapterInterface
60
     * @var AdapterInterface
59
     */
61
     */
60
    private $adapter;
62
    private $adapter;
61
    
63
 
62
    
64
 
63
    /**
65
    /**
64
     *
66
     *
65
     * @var AbstractAdapter
67
     * @var AbstractAdapter
66
     */
68
     */
67
    private $cache;
69
    private $cache;
68
    
70
 
69
    /**
71
    /**
70
     *
72
     *
71
     * @var  LoggerInterface
73
     * @var  LoggerInterface
72
     */
74
     */
73
    private $logger;
75
    private $logger;
Línea 74... Línea 76...
74
 
76
 
75
    
77
 
76
    /**
78
    /**
77
     *
79
     *
78
     * @var array
80
     * @var array
79
     */
81
     */
80
    private $config;
82
    private $config;
81
    
83
 
82
    /**
84
    /**
83
     *
85
     *
84
     * @param AdapterInterface $adapter
86
     * @param AdapterInterface $adapter
85
     * @param AbstractAdapter $cache
87
     * @param AbstractAdapter $cache
86
     * @param LoggerInterface $logger
88
     * @param LoggerInterface $logger
87
     * @param array $config
89
     * @param array $config
88
     */
90
     */
89
    public function __construct($adapter, $cache , $logger,  $config)
91
    public function __construct($adapter, $cache, $logger,  $config)
90
    {
92
    {
91
        $this->adapter      = $adapter;
93
        $this->adapter      = $adapter;
92
        $this->cache        = $cache;
94
        $this->cache        = $cache;
93
        $this->logger       = $logger;
95
        $this->logger       = $logger;
94
        $this->config       = $config;
-
 
95
 
96
        $this->config       = $config;
96
    }
97
    }
97
    
98
 
98
    /**
99
    /**
99
     * 
100
     * 
100
     * Generación del listado de perfiles
101
     * Generación del listado de perfiles
101
     * {@inheritDoc}
102
     * {@inheritDoc}
102
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
103
     * @see \Laminas\Mvc\Controller\AbstractActionController::indexAction()
103
     */
104
     */
104
    public function indexAction()
105
    public function indexAction()
105
    {
106
    {
106
        
107
 
107
        return new JsonModel([
108
        return new JsonModel([
108
            'success' => false,
109
            'success' => false,
109
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
110
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
110
        ]);
111
        ]);
111
    }
112
    }
112
    
113
 
113
    public function commentAction()
114
    public function commentAction()
114
    {
115
    {
115
        $id = $this->params()->fromRoute('id');
116
        $id = $this->params()->fromRoute('id');
116
        
117
 
117
        $request = $this->getRequest();
118
        $request = $this->getRequest();
-
 
119
        if ($request->isPost()) {
-
 
120
 
Línea 118... Línea -...
118
        if($request->isPost()) {
-
 
119
 
-
 
120
            
121
 
121
            
122
 
122
            $feedMapper = FeedMapper::getInstance($this->adapter);
123
            $feedMapper = FeedMapper::getInstance($this->adapter);
123
            $feed = $feedMapper->fetchOneByUuid($id);
124
            $feed = $feedMapper->fetchOneByUuid($id);
124
            if(!$feed) {
125
            if (!$feed) {
125
                $response = [
126
                $response = [
126
                    'success' => false,
127
                    'success' => false,
127
                    'data' => 'ERROR_POST_NOT_FOUND'
128
                    'data' => 'ERROR_POST_NOT_FOUND'
128
                ];
129
                ];
129
                return new JsonModel($response);
130
                return new JsonModel($response);
130
            }
131
            }
131
            
132
 
132
            $dataPost = $request->getPost()->toArray();
133
            $dataPost = $request->getPost()->toArray();
133
            $form = new CommentForm();
134
            $form = new CommentForm();
134
            $form->setData($dataPost);
135
            $form->setData($dataPost);
135
            
136
 
136
            if($form->isValid()) {
137
            if ($form->isValid()) {
137
                $utilMapper = UtilMapper::getInstance($this->adapter);
138
                $utilMapper = UtilMapper::getInstance($this->adapter);
138
                $now = $utilMapper->getDatebaseNow();
139
                $now = $utilMapper->getDatebaseNow();
139
                
140
 
140
                $currentUserPlugin = $this->plugin('currentUserPlugin');
141
                $currentUserPlugin = $this->plugin('currentUserPlugin');
141
                $currentUser = $currentUserPlugin->getUser();
142
                $currentUser = $currentUserPlugin->getUser();
142
                
143
 
143
                $dataPost = (array) $form->getData();
144
                $dataPost = (array) $form->getData();
144
                
145
 
145
              
146
 
146
                
147
 
147
                $comment = new Comment();
148
                $comment = new Comment();
148
                $comment->network_id = $currentUser->network_id;
149
                $comment->network_id = $currentUser->network_id;
149
                $comment->comment = $dataPost['comment'];
150
                $comment->comment = $dataPost['comment'];
150
                $comment->user_id = $currentUser->id;
151
                $comment->user_id = $currentUser->id;
151
                $comment->feed_id = $feed->id;
152
                $comment->feed_id = $feed->id;
152
                $comment->relational = Comment::RELATIONAL_FEED;
153
                $comment->relational = Comment::RELATIONAL_FEED;
153
                
154
 
154
                $commentMapper = CommentMapper::getInstance($this->adapter);
155
                $commentMapper = CommentMapper::getInstance($this->adapter);
155
                if($commentMapper->insert($comment)) {
156
                if ($commentMapper->insert($comment)) {
156
                    
157
 
157
                    
158
 
158
                    if($feed->type == Feed::TYPE_UPDATE) {
159
                    if ($feed->type == Feed::TYPE_UPDATE) {
159
                        $userMapper = UserMapper::getInstance($this->adapter);
160
                        $userMapper = UserMapper::getInstance($this->adapter);
160
                        $ownerFeed = $userMapper->fetchOne($feed->user_id);
161
                        $ownerFeed = $userMapper->fetchOne($feed->user_id);
161
                        
162
 
162
                        $notification = new Notification();
163
                        $notification = new Notification();
163
                        $notification->type = Notification::TYPE_COMMENT_MY_FEED;
164
                        $notification->type = Notification::TYPE_COMMENT_MY_FEED;
164
                        $notification->feed_id = $feed->id;
165
                        $notification->feed_id = $feed->id;
165
                        $notification->read     = Notification::NO;
166
                        $notification->read     = Notification::NO;
166
                        $notification->user_id  = $ownerFeed->id;
167
                        $notification->user_id  = $ownerFeed->id;
167
                        $notification->message  = 'LABEL_COMMENT_MY_FEED';
168
                        $notification->message  = 'LABEL_COMMENT_MY_FEED';
168
                        $notification->url      = $this->url()->fromRoute('dashboard',['feed' => $feed->uuid]);
169
                        $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid]);
169
                        
170
 
170
                        $notificationMapper = NotificationMapper::getInstance($this->adapter);
171
                        $notificationMapper = NotificationMapper::getInstance($this->adapter);
171
                        $notificationMapper->insert($notification);
172
                        $notificationMapper->insert($notification);
172
                        
173
 
173
                        $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
174
                        $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
174
                        $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
175
                        $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
175
                        
-
 
176
                        if($userNotification && $userNotification->comment_my_feed)
176
 
177
                        {
177
                        if ($userNotification && $userNotification->comment_my_feed) {
178
                            $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
178
                            $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
179
                            $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_COMMENT_MY_FEED,  $currentUser->network_id);
179
                            $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_COMMENT_MY_FEED,  $currentUser->network_id);
180
                            
180
 
181
                            if($emailTemplate) {
181
                            if ($emailTemplate) {
182
                                $arrayCont = [
182
                                $arrayCont = [
183
                                    'firstname'             => $currentUser->first_name,
183
                                    'firstname'             => $currentUser->first_name,
184
                                    'lastname'              => $currentUser->last_name,
184
                                    'lastname'              => $currentUser->last_name,
185
                                    'other_user_firstname'  => $ownerFeed->first_name,
185
                                    'other_user_firstname'  => $ownerFeed->first_name,
186
                                    'other_user_lastname'   => $ownerFeed->last_name,
186
                                    'other_user_lastname'   => $ownerFeed->last_name,
187
                                    'company_name'          => '',
187
                                    'company_name'          => '',
188
                                    'group_name'            => '',
188
                                    'group_name'            => '',
189
                                    'content'               => '',
189
                                    'content'               => '',
190
                                    'code'                  => '',
190
                                    'code'                  => '',
191
                                    'link'                  => $this->url()->fromRoute('dashboard',['feed' => $feed->uuid], ['force_canonical' => true])
191
                                    'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
192
                                ];
192
                                ];
193
                                
193
 
194
                                $email = new QueueEmail($this->adapter);
194
                                $email = new QueueEmail($this->adapter);
195
                                $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
195
                                $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
196
                            }
196
                            }
197
                        }
197
                        }
198
                    }
198
                    }
199
                     
199
 
200
                    $total_comments = $commentMapper->fetchCountCommentByFeedId($comment->feed_id);
200
                    $total_comments = $commentMapper->fetchCountCommentByFeedId($comment->feed_id);
201
                    
201
 
202
                    $feed->total_comments = $total_comments;
202
                    $feed->total_comments = $total_comments;
203
                    $feedMapper->update($feed);
203
                    $feedMapper->update($feed);
204
                    
204
 
205
                    $response = [
205
                    $response = [
206
                        'success'   => true,
206
                        'success'   => true,
207
                        'data'   => $this->renderComment($comment->id, $now),
207
                        'data'   => $this->renderComment($comment->id, $now),
208
                        'total_comments' => $total_comments
208
                        'total_comments' => $total_comments
209
                    ];
209
                    ];
210
                    
-
 
211
                    return new JsonModel($response);
210
 
212
                    
211
                    return new JsonModel($response);
213
                } else {
212
                } else {
214
                    
213
 
215
                    $response = [
214
                    $response = [
216
                        'success'   => false,
215
                        'success'   => false,
217
                        'data'   => $commentMapper->getError()
216
                        'data'   => $commentMapper->getError()
218
                    ];
217
                    ];
219
                    
218
 
220
                    return new JsonModel($response);
-
 
221
                }
219
                    return new JsonModel($response);
222
                
220
                }
223
            } else {
221
            } else {
224
                $message = '';;
222
                $message = '';;
225
                $form_messages = (array) $form->getMessages();
-
 
226
                foreach($form_messages  as $fieldname => $field_messages)
223
                $form_messages = (array) $form->getMessages();
227
                {
-
 
228
                    foreach( $field_messages as $key => $value)
224
                foreach ($form_messages  as $fieldname => $field_messages) {
229
                    {
225
                    foreach ($field_messages as $key => $value) {
230
                        $message = $value;
226
                        $message = $value;
231
                    }
227
                    }
232
                }
228
                }
233
                
229
 
234
                $response = [
230
                $response = [
235
                    'success'   => false,
231
                    'success'   => false,
236
                    'data'   => $message
232
                    'data'   => $message
237
                ];
233
                ];
238
                
234
 
239
                return new JsonModel($response);
-
 
240
            }
-
 
241
 
235
                return new JsonModel($response);
242
            
236
            }
243
        } else {
237
        } else {
244
            $response = [
238
            $response = [
245
                'success' => false,
239
                'success' => false,
246
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
240
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
247
            ];
241
            ];
248
            
242
 
249
            return new JsonModel($response);
-
 
250
        }
-
 
251
        
243
            return new JsonModel($response);
252
       
244
        }
253
    }
245
    }
254
    
246
 
255
    public function shareAction()
247
    public function shareAction()
256
    {
248
    {
257
        $id = $this->params()->fromRoute('id');
249
        $id = $this->params()->fromRoute('id');
258
        
250
 
259
        $request = $this->getRequest();
251
        $request = $this->getRequest();
260
        if($request->isPost()) {
252
        if ($request->isPost()) {
261
            
253
 
262
            $currentUserPlugin = $this->plugin('currentUserPlugin');
254
            $currentUserPlugin = $this->plugin('currentUserPlugin');
263
            $currentUser = $currentUserPlugin->getUser();
255
            $currentUser = $currentUserPlugin->getUser();
264
            
256
 
265
            
257
 
266
            $feedMapper = FeedMapper::getInstance($this->adapter);
258
            $feedMapper = FeedMapper::getInstance($this->adapter);
267
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
259
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
268
            if(!$feed) {
260
            if (!$feed) {
269
                $response = [
261
                $response = [
270
                    'success' => false,
262
                    'success' => false,
271
                    'data' => 'ERROR_POST_NOT_FOUND'
263
                    'data' => 'ERROR_POST_NOT_FOUND'
272
                ];
264
                ];
273
                return new JsonModel($response);
265
                return new JsonModel($response);
274
            }
266
            }
275
            
267
 
276
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
268
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
277
            $dataPost['company_id'] = $this->params()->fromRoute('company_id');
269
            $dataPost['company_id'] = $this->params()->fromRoute('company_id');
278
            $dataPost['group_id'] = $this->params()->fromRoute('group_id');
-
 
Línea -... Línea 270...
-
 
270
            $dataPost['group_id'] = $this->params()->fromRoute('group_id');
279
            $dataPost['shared_feed_id'] = $feed->id;
271
            $dataPost['shared_feed_id'] = $feed->id;
280
            
272
 
281
 
273
 
282
  
274
 
283
            
275
 
284
            $response = $this->postOrShareFeed($dataPost);
276
            $response = $this->postOrShareFeed($dataPost);
285
            if( $response ['success']) {
277
            if ($response['success']) {
286
                $feedMapper->incTotalShared($feed->id);
278
                $feedMapper->incTotalShared($feed->id);
287
                $total_shared = $feedMapper->fetchTotalShared($feed->id);
279
                $total_shared = $feedMapper->fetchTotalShared($feed->id);
288
                
280
 
289
                $response['total_shared'] = $total_shared;
281
                $response['total_shared'] = $total_shared;
290
            }
282
            }
291
            
-
 
292
            
283
 
293
            return new JsonModel($response);
284
 
294
            
285
            return new JsonModel($response);
295
        } else {
286
        } else {
296
            $response = [
287
            $response = [
297
                'success' => false,
288
                'success' => false,
298
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
289
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
299
            ];
290
            ];
300
        }
291
        }
301
        
292
 
302
        return new JsonModel($response);
293
        return new JsonModel($response);
303
    }
294
    }
304
    
295
 
305
    public function commentDeleteAction()
296
    public function commentDeleteAction()
306
    {
297
    {
307
        $request = $this->getRequest();
298
        $request = $this->getRequest();
308
        if($request->isPost()) {
299
        if ($request->isPost()) {
309
            $currentUserPlugin = $this->plugin('currentUserPlugin');
300
            $currentUserPlugin = $this->plugin('currentUserPlugin');
310
            $currentUser = $currentUserPlugin->getUser();
301
            $currentUser = $currentUserPlugin->getUser();
311
            
302
 
312
            $feed_id = $this->params()->fromRoute('id');
303
            $feed_id = $this->params()->fromRoute('id');
313
            $comment = $this->params()->fromRoute('comment');
304
            $comment = $this->params()->fromRoute('comment');
314
            
305
 
315
            $feedMapper = FeedMapper::getInstance($this->adapter);
306
            $feedMapper = FeedMapper::getInstance($this->adapter);
316
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($feed_id, $currentUser->network_id);
307
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($feed_id, $currentUser->network_id);
317
            
308
 
318
            if($feed) {
309
            if ($feed) {
319
            
310
 
320
                $commentMapper = CommentMapper::getInstance($this->adapter);
311
                $commentMapper = CommentMapper::getInstance($this->adapter);
321
                $comment = $commentMapper->fetchOneByUuid($comment);
312
                $comment = $commentMapper->fetchOneByUuid($comment);
322
                
313
 
323
                if($comment && $comment->feed_id == $feed->id && $comment->user_id == $currentUser->id) {
314
                if ($comment && $comment->feed_id == $feed->id && $comment->user_id == $currentUser->id) {
324
                    
315
 
325
                    $comment->status = Comment::STATUS_DELETED;
316
                    $comment->status = Comment::STATUS_DELETED;
326
                    
317
 
327
                    if($commentMapper->update($comment)) {
318
                    if ($commentMapper->update($comment)) {
328
                        
319
 
329
                        $total_comments = $commentMapper->fetchCountCommentByFeedId($comment->feed_id);
320
                        $total_comments = $commentMapper->fetchCountCommentByFeedId($comment->feed_id);
330
                        
321
 
331
                        
322
 
332
                        $feedMapper = FeedMapper::getInstance($this->adapter);
323
                        $feedMapper = FeedMapper::getInstance($this->adapter);
333
                        $feed = $feedMapper->fetchOne($comment->feed_id);
324
                        $feed = $feedMapper->fetchOne($comment->feed_id);
334
                        $feed->total_comments = $total_comments;
325
                        $feed->total_comments = $total_comments;
335
                        $feedMapper->update($feed);
326
                        $feedMapper->update($feed);
336
                        
327
 
337
                        
328
 
338
                        
329
 
339
    
330
 
340
                        
331
 
341
                        $response = [
332
                        $response = [
342
                            'success' => true,
333
                            'success' => true,
343
                            'data' => 'LABEL_COMMENT_WAS_DELETED',
-
 
344
                            'total_comments' => $total_comments
334
                            'data' => 'LABEL_COMMENT_WAS_DELETED',
345
                        ];
335
                            'total_comments' => $total_comments
346
                        
336
                        ];
347
                    } else {
337
                    } else {
348
                        $response = [
338
                        $response = [
349
                            'success' => false,
339
                            'success' => false,
350
                            'data' => $commentMapper->getError()
-
 
351
                        ];
340
                            'data' => $commentMapper->getError()
352
                    }
341
                        ];
353
                    
342
                    }
354
                } else {
343
                } else {
355
                    $response = [
344
                    $response = [
Línea 367... Línea 356...
367
            $response = [
356
            $response = [
368
                'success' => false,
357
                'success' => false,
369
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
358
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
370
            ];
359
            ];
371
        }
360
        }
372
        
361
 
373
        return new JsonModel($response);
362
        return new JsonModel($response);
374
    }
363
    }
375
    
364
 
376
    public function deleteAction()
365
    public function deleteAction()
377
    {
366
    {
378
        $request = $this->getRequest();
367
        $request = $this->getRequest();
379
        if($request->isPost()) {
368
        if ($request->isPost()) {
380
            $currentUserPlugin = $this->plugin('currentUserPlugin');
369
            $currentUserPlugin = $this->plugin('currentUserPlugin');
381
            $currentUser = $currentUserPlugin->getUser();
370
            $currentUser = $currentUserPlugin->getUser();
382
            
371
 
383
            $feed_id =  $this->params()->fromRoute('id');
372
            $feed_id =  $this->params()->fromRoute('id');
384
            
373
 
385
            $feedMapper = FeedMapper::getInstance($this->adapter);
374
            $feedMapper = FeedMapper::getInstance($this->adapter);
386
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($feed_id, $currentUser->network_id);
375
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($feed_id, $currentUser->network_id);
387
            
376
 
388
            if($feed) {
377
            if ($feed) {
389
                
378
 
390
                if($feed->user_id && $feed->user_id == $currentUser->id) {
379
                if ($feed->user_id && $feed->user_id == $currentUser->id) {
391
                    
380
 
392
                    return new JsonModel($this->deleteFeed($feed));
381
                    return new JsonModel($this->deleteFeed($feed));
393
                } else if ($feed->group_id) {
382
                } else if ($feed->group_id) {
394
                    
383
 
395
                    $groupMapper = GroupMapper::getInstance($this->adapter);
384
                    $groupMapper = GroupMapper::getInstance($this->adapter);
396
                    $group = $groupMapper->fetchOne($feed->group_id);
385
                    $group = $groupMapper->fetchOne($feed->group_id);
397
                    if($group && $group->user_id == $currentUser->id) {
386
                    if ($group && $group->user_id == $currentUser->id) {
398
                        return new JsonModel($this->deleteFeed($feed));
387
                        return new JsonModel($this->deleteFeed($feed));
399
                    }
388
                    }
400
                    
-
 
401
                } else if ($feed->company_id) {
389
                } else if ($feed->company_id) {
402
                    $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
390
                    $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
403
                    $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($feed->company_id, $currentUser->id);
391
                    $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($feed->company_id, $currentUser->id);
404
                    if($companyUser) {
392
                    if ($companyUser) {
405
                        if(in_array($companyUser->type, [CompanyUser::TYPE_OWNER, CompanyUser::TYPE_ADMINISTRATOR, CompanyUser::TYPE_MANAGER])) {
393
                        if (in_array($companyUser->type, [CompanyUser::TYPE_OWNER, CompanyUser::TYPE_ADMINISTRATOR, CompanyUser::TYPE_MANAGER])) {
406
                            return new JsonModel($this->deleteFeed($feed));
394
                            return new JsonModel($this->deleteFeed($feed));
407
                        }
395
                        }
408
                    }
396
                    }
409
                }
397
                }
410
                
398
 
411
                $response = [
399
                $response = [
412
                    'success' => false,
400
                    'success' => false,
413
                    'data' => ' ERROR_UNAUTHORIZED'
401
                    'data' => ' ERROR_UNAUTHORIZED'
414
                ];
402
                ];
415
                
-
 
416
                
-
 
417
            } else {
403
            } else {
418
                $response = [
404
                $response = [
419
                    'success' => false,
405
                    'success' => false,
420
                    'data' => 'ERROR_FEED_NOT_FOUND'
406
                    'data' => 'ERROR_FEED_NOT_FOUND'
421
                ];
407
                ];
422
            }
408
            }
423
            
409
 
424
            return new JsonModel($response);
410
            return new JsonModel($response);
425
            
-
 
426
        } else {
411
        } else {
427
            $response = [
412
            $response = [
428
                'success' => false,
413
                'success' => false,
429
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
414
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
430
            ];
415
            ];
431
        }
416
        }
432
        
417
 
433
        return new JsonModel($response);
418
        return new JsonModel($response);
434
    }
419
    }
435
    
420
 
436
    public function addAction()
421
    public function addAction()
437
    {
422
    {
438
        $request = $this->getRequest();
423
        $request = $this->getRequest();
439
        if($request->isPost()) {
424
        if ($request->isPost()) {
440
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
425
            $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
441
            $dataPost['company_id'] = $this->params()->fromRoute('company_id');
426
            $dataPost['company_id'] = $this->params()->fromRoute('company_id');
442
            $dataPost['group_id'] = $this->params()->fromRoute('group_id');
427
            $dataPost['group_id'] = $this->params()->fromRoute('group_id');
443
            $response = $this->postOrShareFeed($dataPost);
428
            $response = $this->postOrShareFeed($dataPost);
444
            
429
 
445
            
430
 
446
            return new JsonModel($response);
431
            return new JsonModel($response);
447
            
-
 
448
        } else {
432
        } else {
449
            $response = [
433
            $response = [
450
                'success' => false,
434
                'success' => false,
451
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
435
                'data' => 'ERROR_METHOD_NOT_ALLOWED'
452
            ];
436
            ];
453
        }
437
        }
454
        
438
 
455
        return new JsonModel($response);
439
        return new JsonModel($response);
456
    }
440
    }
Línea 457... Línea 441...
457
 
441
 
458
    public function postOrShareFeed($dataPost)
442
    public function postOrShareFeed($dataPost)
459
    {
443
    {
460
        $utilMapper = UtilMapper::getInstance($this->adapter);
444
        $utilMapper = UtilMapper::getInstance($this->adapter);
461
        $now = $utilMapper->getDatebaseNow();
445
        $now = $utilMapper->getDatebaseNow();
462
        
446
 
463
        $currentUserPlugin = $this->plugin('currentUserPlugin');
447
        $currentUserPlugin = $this->plugin('currentUserPlugin');
464
        $currentUser = $currentUserPlugin->getUser();
448
        $currentUser = $currentUserPlugin->getUser();
465
        
449
 
466
        $companyId  = empty($dataPost['company_id']) ? '' : $dataPost['company_id'];
450
        $companyId  = empty($dataPost['company_id']) ? '' : $dataPost['company_id'];
467
        $groupId    = empty($dataPost['group_id']) ? '' : $dataPost['group_id'];
451
        $groupId    = empty($dataPost['group_id']) ? '' : $dataPost['group_id'];
468
        
452
 
469
        
453
 
470
        if($groupId || $companyId) {
454
        if ($groupId || $companyId) {
471
            $form = new  CreateGroupCompanyForm($this->adapter);
455
            $form = new  CreateGroupCompanyForm($this->adapter);
472
        } else {
456
        } else {
473
            $form = new  CreateForm($this->adapter);
457
            $form = new  CreateForm($this->adapter);
474
        }
458
        }
475
        $form->setData($dataPost);
459
        $form->setData($dataPost);
-
 
460
        if ($form->isValid()) {
-
 
461
 
Línea 476... Línea -...
476
        if($form->isValid()) {
-
 
477
 
-
 
Línea 478... Línea 462...
478
            
462
 
479
            
463
 
480
 
464
 
Línea 481... Línea 465...
481
            $hydrator = new ObjectPropertyHydrator();
465
            $hydrator = new ObjectPropertyHydrator();
482
            $feed = new Feed();
466
            $feed = new Feed();
Línea 483... Línea 467...
483
            $hydrator->hydrate($dataPost, $feed);
467
            $hydrator->hydrate($dataPost, $feed);
484
 
468
 
485
            $company = null; 
469
            $company = null;
486
            $group = null;
470
            $group = null;
487
 
471
 
488
            if($companyId) {
472
            if ($companyId) {
489
                $companyMapper = CompanyMapper::getInstance($this->adapter);
473
                $companyMapper = CompanyMapper::getInstance($this->adapter);
490
                $company = $companyMapper->fetchOneByUuidAndNetworkId($companyId, $currentUser->network_id);
474
                $company = $companyMapper->fetchOneByUuidAndNetworkId($companyId, $currentUser->network_id);
491
                
475
 
492
   
476
 
493
                if(!$company) {
477
                if (!$company) {
494
                    return [
478
                    return [
495
                        'success'   => false,
479
                        'success'   => false,
496
                        'data'   => 'ERROR_COMPANY_NOT_FOUND'
480
                        'data'   => 'ERROR_COMPANY_NOT_FOUND'
497
                    ];
481
                    ];
498
                }
482
                }
499
                
483
 
500
                if($company->status != Company::STATUS_ACTIVE) {
484
                if ($company->status != Company::STATUS_ACTIVE) {
501
                    return [
485
                    return [
502
                        'success'   => false,
486
                        'success'   => false,
503
                        'data'   => 'ERROR_COMPANY_IS_NOT_ACTIVE'
487
                        'data'   => 'ERROR_COMPANY_IS_NOT_ACTIVE'
504
                    ];
488
                    ];
505
                }
489
                }
506
                
490
 
507
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
491
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
508
                $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
492
                $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
509
                
493
 
510
                //print_r($companyUser); exit;
494
                //print_r($companyUser); exit;
511
                
495
 
512
                
496
 
513
                if(!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
497
                if (!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
514
                    return [
-
 
515
                        'success'   => false,
498
                    return [
516
                        'data'   => 'ERROR_UNAUTHORIZED'
499
                        'success'   => false,
517
                    ];
500
                        'data'   => 'ERROR_UNAUTHORIZED'
518
                }
501
                    ];
519
                
502
                }
520
            }
503
            }
521
            
504
 
522
            if($groupId) {
505
            if ($groupId) {
523
                $groupMapper = GroupMapper::getInstance($this->adapter);
506
                $groupMapper = GroupMapper::getInstance($this->adapter);
524
                $group = $groupMapper->fetchOneByUuidAndNetworkId($groupId, $currentUser->network_id);
507
                $group = $groupMapper->fetchOneByUuidAndNetworkId($groupId, $currentUser->network_id);
525
                
508
 
526
                if(!$group) {
509
                if (!$group) {
527
                    return [
510
                    return [
528
                        'success'   => false,
511
                        'success'   => false,
529
                        'data'   => 'ERROR_GROUP_NOT_FOUND'
512
                        'data'   => 'ERROR_GROUP_NOT_FOUND'
530
                    ];
513
                    ];
531
                }
514
                }
532
                
515
 
533
                if($group->status != Group::STATUS_ACTIVE) {
516
                if ($group->status != Group::STATUS_ACTIVE) {
534
                    return [
517
                    return [
535
                        'success'   => false,
518
                        'success'   => false,
536
                        'data'   => 'ERROR_GROUP_IS_NOT_ACTIVE'
519
                        'data'   => 'ERROR_GROUP_IS_NOT_ACTIVE'
537
                    ];
520
                    ];
538
                }
521
                }
539
                
522
 
540
                $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
523
                $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
541
                $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
524
                $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
542
                if(!$groupMember || !in_array($groupMember->status, [GroupMember::STATUS_ACCEPTED, GroupMember::STATUS_AUTO_JOIN])) {
525
                if (!$groupMember || !in_array($groupMember->status, [GroupMember::STATUS_ACCEPTED, GroupMember::STATUS_AUTO_JOIN])) {
543
                    return [
526
                    return [
544
                        'success'   => false,
527
                        'success'   => false,
545
                        'data'   => 'ERROR_UNAUTHORIZED'
528
                        'data'   => 'ERROR_UNAUTHORIZED'
546
                    ];
529
                    ];
547
                }
530
                }
548
            }
531
            }
549
            
532
 
550
            $feed->network_id   = $currentUser->network_id;
533
            $feed->network_id   = $currentUser->network_id;
551
            $feed->company_id   = $company ? $company->id : null;
534
            $feed->company_id   = $company ? $company->id : null;
552
            $feed->group_id     = $group ? $group->id : null;
535
            $feed->group_id     = $group ? $group->id : null;
553
            $feed->user_id      = $currentUser->id;
536
            $feed->user_id      = $currentUser->id;
554
            
537
 
555
            if($companyId) {
538
            if ($companyId) {
556
                $feed->type = Feed::TYPE_COMPANY;
539
                $feed->type = Feed::TYPE_COMPANY;
557
            } else if ($groupId) {
540
            } else if ($groupId) {
558
                $feed->type = Feed::TYPE_GROUP;
541
                $feed->type = Feed::TYPE_GROUP;
559
            } else {
542
            } else {
560
                $feed->type = Feed::TYPE_UPDATE;      
543
                $feed->type = Feed::TYPE_UPDATE;
561
            }
544
            }
562
                
545
 
563
            $posted_or_shared   = $dataPost['posted_or_shared'];
546
            $posted_or_shared   = $dataPost['posted_or_shared'];
564
            if($posted_or_shared != Feed::POSTED && $posted_or_shared != Feed::SHARED) {
547
            if ($posted_or_shared != Feed::POSTED && $posted_or_shared != Feed::SHARED) {
565
                return [
548
                return [
566
                    'success'   => false,
549
                    'success'   => false,
567
                    'data'      => 'ERROR_SUPPLY_VALID_SHARING_STATUS'
550
                    'data'      => 'ERROR_SUPPLY_VALID_SHARING_STATUS'
568
                ];
551
                ];
569
            }
552
            }
570
            $feed->posted_or_shared = $posted_or_shared;
553
            $feed->posted_or_shared = $posted_or_shared;
571
            $feedMapper = FeedMapper::getInstance($this->adapter);
554
            $feedMapper = FeedMapper::getInstance($this->adapter);
572
           
555
 
573
            $shared_with = isset($dataPost['shared_with']) ? $dataPost['shared_with'] : Feed::SHARE_WITH_PUBLIC;
556
            $shared_with = isset($dataPost['shared_with']) ? $dataPost['shared_with'] : Feed::SHARE_WITH_PUBLIC;
574
            if ($shared_with != Feed::SHARE_WITH_PUBLIC && $shared_with != Feed::SHARE_WITH_CONNECTIONS) {
557
            if ($shared_with != Feed::SHARE_WITH_PUBLIC && $shared_with != Feed::SHARE_WITH_CONNECTIONS) {
575
                return [
558
                return [
576
                    'status' => false,
559
                    'status' => false,
577
                    'error' => 'ERROR_SUPPLY_VALID_SHARING_WITH_TYPE',
560
                    'error' => 'ERROR_SUPPLY_VALID_SHARING_WITH_TYPE',
578
                ];
561
                ];
579
            }
562
            }
580
                
563
 
581
            $feed->shared_with = $shared_with;
564
            $feed->shared_with = $shared_with;
582
            if(Feed::SHARED == $feed->posted_or_shared) {
565
            if (Feed::SHARED == $feed->posted_or_shared) {
583
                $shared_feed_id     = empty($dataPost['shared_feed_id']) ? 0 : $dataPost['shared_feed_id'];
566
                $shared_feed_id     = empty($dataPost['shared_feed_id']) ? 0 : $dataPost['shared_feed_id'];
584
                    
567
 
585
                
568
 
586
                $sharedFeed = $feedMapper->fetchOneByIdAndNetworkId($shared_feed_id, $currentUser->network_id);
569
                $sharedFeed = $feedMapper->fetchOneByIdAndNetworkId($shared_feed_id, $currentUser->network_id);
587
                if(!$sharedFeed) {
-
 
588
                    return [
570
                if (!$sharedFeed) {
589
                        'status' => false,
571
                    return [
590
                        'error' => 'ERROR_POST_SHARE',
572
                        'status' => false,
591
                    ];
573
                        'error' => 'ERROR_POST_SHARE',
592
                        
574
                    ];
593
                }
575
                }
594
                    
576
 
Línea 601... Línea 583...
601
            }
583
            }
Línea 602... Línea 584...
602
 
584
 
603
            $feed->status = Feed::STATUS_PUBLISHED;
585
            $feed->status = Feed::STATUS_PUBLISHED;
604
            $feed->total_comments    = 0;
586
            $feed->total_comments    = 0;
605
            $feed->total_shared     = 0;
587
            $feed->total_shared     = 0;
606
                
588
 
607
            
589
 
608
            $files = $this->getRequest()->getFiles()->toArray();
590
            $files = $this->getRequest()->getFiles()->toArray();
609
            $file_type = '';
591
            $file_type = '';
610
            
592
 
611
            $encoding = $this->params()->fromRoute('encoding');
593
            $encoding = $this->params()->fromRoute('encoding');
612
            if($encoding == 'base64') {
594
            if ($encoding == 'base64') {
613
        
595
 
614
                
596
 
615
                $fileBase64Name = $this->params()->fromPost('file_base64_name');
597
                $fileBase64Name = $this->params()->fromPost('file_base64_name');
616
                $fileBase64Content = $this->params()->fromPost('file_base64_content');
598
                $fileBase64Content = $this->params()->fromPost('file_base64_content');
617
                
599
 
618
                if($fileBase64Name && $fileBase64Content) {
600
                if ($fileBase64Name && $fileBase64Content) {
619
                
601
 
620
                    try {
602
                    try {
621
                        $fileBase64Content = base64_decode($fileBase64Content);
603
                        $fileBase64Content = base64_decode($fileBase64Content);
622
                        if($fileBase64Content) {
604
                        if ($fileBase64Content) {
623
                            $feed_filename      = $this->normalizeString($fileBase64Name);
605
                            $feed_filename      = $this->normalizeString($fileBase64Name);
624
                            $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp';
606
                            $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp';
625
                            if(!file_exists($feed_tmp_filename)) {
607
                            if (!file_exists($feed_tmp_filename)) {
626
                                mkdir($feed_tmp_filename, 0755, true);
608
                                mkdir($feed_tmp_filename, 0755, true);
627
                            }
609
                            }
628
                            
610
 
Línea 629... Línea 611...
629
                            
611
 
630
 
612
 
631
                            $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . $feed_filename;
613
                            $feed_tmp_filename = 'data' . DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . $feed_filename;
632
                            file_put_contents($feed_tmp_filename, $fileBase64Content);
614
                            file_put_contents($feed_tmp_filename, $fileBase64Content);
633
                            
615
 
634
                            
616
 
635
                            
617
 
636
                            $mime_type = mime_content_type($feed_tmp_filename);
618
                            $mime_type = mime_content_type($feed_tmp_filename);
637
                            //echo '$mime_type = '. $mime_type; exit;
619
                            //echo '$mime_type = '. $mime_type; exit;
638
                            
620
 
639
                            
621
 
640
                            if($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
622
                            if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
641
                                $file_type = Feed::FILE_TYPE_IMAGE;
623
                                $file_type = Feed::FILE_TYPE_IMAGE;
642
                            } else if($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
624
                            } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
643
                                $file_type = Feed::FILE_TYPE_VIDEO;
625
                                $file_type = Feed::FILE_TYPE_VIDEO;
644
                            } else if($mime_type == 'application/pdf') {
626
                            } else if ($mime_type == 'application/pdf') {
645
                                $file_type = Feed::FILE_TYPE_DOCUMENT;
-
 
646
                            }
627
                                $file_type = Feed::FILE_TYPE_DOCUMENT;
647
                
628
                            }
648
                        }
-
 
649
                    } catch(\Exception $e) {
629
                        }
650
                        
630
                    } catch (\Exception $e) {
651
                    }
-
 
652
                }
631
                    }
653
 
632
                }
654
            } else {
633
            } else {
655
                
634
 
656
                if(isset($files['file']) && empty($files['file']['error'])) {
635
                if (isset($files['file']) && empty($files['file']['error'])) {
657
                    $feed_tmp_filename  = $files['file']['tmp_name'];
636
                    $feed_tmp_filename  = $files['file']['tmp_name'];
658
                    $feed_filename      = $this->normalizeString($files['file']['name']);
637
                    $feed_filename      = $this->normalizeString($files['file']['name']);
659
                    
638
 
660
                    $mime_type = mime_content_type($feed_tmp_filename);
639
                    $mime_type = mime_content_type($feed_tmp_filename);
661
                    
640
 
662
                    
641
 
663
                    if($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
642
                    if ($mime_type == 'image/jpg' || $mime_type == 'image/jpeg' || $mime_type == 'image/png') {
664
                        $file_type = Feed::FILE_TYPE_IMAGE;
643
                        $file_type = Feed::FILE_TYPE_IMAGE;
665
                    } else if($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
644
                    } else if ($mime_type == 'video/webm' || $mime_type == 'video/mpeg' || $mime_type == 'video/mpg' || $mime_type == 'video/mp4') {
666
                        $file_type = Feed::FILE_TYPE_VIDEO;
645
                        $file_type = Feed::FILE_TYPE_VIDEO;
667
                    } else if($mime_type == 'application/pdf') {
646
                    } else if ($mime_type == 'application/pdf') {
668
                        $file_type = Feed::FILE_TYPE_DOCUMENT;
647
                        $file_type = Feed::FILE_TYPE_DOCUMENT;
669
                    }
648
                    }
Línea 670... Línea 649...
670
                }
649
                }
671
            }
650
            }
672
 
651
 
673
            
652
 
674
            $result = $feedMapper->insert($feed);
653
            $result = $feedMapper->insert($feed);
675
            if($result) {
654
            if ($result) {
676
                
655
 
677
                if($sharedFeed && $sharedFeed->type == Feed::TYPE_UPDATE) {
656
                if ($sharedFeed && $sharedFeed->type == Feed::TYPE_UPDATE) {
678
            
657
 
679
                
658
 
680
                    $userMapper = UserMapper::getInstance($this->adapter);
659
                    $userMapper = UserMapper::getInstance($this->adapter);
681
                    $ownerFeed = $userMapper->fetchOne($sharedFeed->user_id);
660
                    $ownerFeed = $userMapper->fetchOne($sharedFeed->user_id);
682
                    
661
 
683
                    $notification = new Notification();
662
                    $notification = new Notification();
684
                    $notification->type     = Notification::TYPE_SHARE_MY_FEED;
663
                    $notification->type     = Notification::TYPE_SHARE_MY_FEED;
685
                    $notification->read     = Notification::NO;
664
                    $notification->read     = Notification::NO;
686
                    $notification->user_id  = $ownerFeed->id;
665
                    $notification->user_id  = $ownerFeed->id;
687
                    $notification->feed_id = $feed->id;
666
                    $notification->feed_id = $feed->id;
688
                    $notification->message  = 'LABEL_SHARE_MY_FEED';
667
                    $notification->message  = 'LABEL_SHARE_MY_FEED';
689
                    $notification->url      = $this->url()->fromRoute('dashboard',['feed' => $sharedFeed->uuid]);
668
                    $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $sharedFeed->uuid]);
690
                    
669
 
691
                    $notificationMapper = NotificationMapper::getInstance($this->adapter);
670
                    $notificationMapper = NotificationMapper::getInstance($this->adapter);
692
                    $notificationMapper->insert($notification);
671
                    $notificationMapper->insert($notification);
693
                    
672
 
694
                    $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
673
                    $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
695
                    $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
-
 
696
                    
674
                    $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
697
                    if($userNotification && $userNotification->share_my_feed)
675
 
698
                    {
676
                    if ($userNotification && $userNotification->share_my_feed) {
699
                        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
677
                        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
700
                        $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_SHARE_MY_FEED, $currentUser->network_id);
678
                        $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_SHARE_MY_FEED, $currentUser->network_id);
701
                        
679
 
702
                        if($emailTemplate) {
680
                        if ($emailTemplate) {
703
                            $arrayCont = [
681
                            $arrayCont = [
704
                                'firstname'             => $currentUser->first_name,
682
                                'firstname'             => $currentUser->first_name,
705
                                'lastname'              => $currentUser->last_name,
683
                                'lastname'              => $currentUser->last_name,
706
                                'other_user_firstname'  => $ownerFeed->first_name,
684
                                'other_user_firstname'  => $ownerFeed->first_name,
707
                                'other_user_lastname'   => $ownerFeed->last_name,
685
                                'other_user_lastname'   => $ownerFeed->last_name,
708
                                'company_name'          => '',
686
                                'company_name'          => '',
709
                                'group_name'            => '',
687
                                'group_name'            => '',
710
                                'content'               => '',
688
                                'content'               => '',
711
                                'code'                  => '',
689
                                'code'                  => '',
712
                                'link'                  => $this->url()->fromRoute('dashboard',['feed' => $feed->uuid], ['force_canonical' => true])
690
                                'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
713
                            ];
691
                            ];
714
                            
692
 
715
                            $email = new QueueEmail($this->adapter);
693
                            $email = new QueueEmail($this->adapter);
716
                            $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
694
                            $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
717
                        }
695
                        }
718
                    }
696
                    }
719
                }
697
                }
720
                
698
 
721
                
699
 
722
                $feed = $feedMapper->fetchOne($feed->id);
700
                $feed = $feedMapper->fetchOne($feed->id);
723
        
701
 
724
                if( $file_type == Feed::FILE_TYPE_DOCUMENT) {
702
                if ($file_type == Feed::FILE_TYPE_DOCUMENT) {
725
                    try {
703
                    try {
726
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
704
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
727
                        if(!file_exists($target_path)) {
705
                        if (!file_exists($target_path)) {
728
                            mkdir($target_path, 0755);
706
                            mkdir($target_path, 0755);
729
                        }
707
                        }
730
                        
708
 
731
                        $full_filename = $target_path  . DIRECTORY_SEPARATOR .$feed_filename;
709
                        $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
732
                        
710
 
733
                        if($encoding == 'base64') {
711
                        if ($encoding == 'base64') {
734
                            $resultMoveOrRename = rename($feed_tmp_filename , $full_filename);
712
                            $resultMoveOrRename = rename($feed_tmp_filename, $full_filename);
735
                        } else {
713
                        } else {
736
                            $resultMoveOrRename = move_uploaded_file($feed_tmp_filename , $full_filename);
714
                            $resultMoveOrRename = move_uploaded_file($feed_tmp_filename, $full_filename);
737
                        }
715
                        }
738
                        
716
 
739
                        if($resultMoveOrRename) {
717
                        if ($resultMoveOrRename) {
740
                              
718
 
741
                            $feed->file_type = $file_type;
719
                            $feed->file_type = $file_type;
742
                            $feed->file_name = basename($feed_filename);
720
                            $feed->file_name = basename($feed_filename);
743
                            $feedMapper->update($feed);
721
                            $feedMapper->update($feed);
744
                        } else {
722
                        } else {
745
                            error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename );
723
                            error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
746
                        }
724
                        }
747
                    } catch(\Throwable $e) {
725
                    } catch (\Throwable $e) {
748
                        error_log($e->getTraceAsString());
726
                        error_log($e->getTraceAsString());
749
                    }
727
                    }
750
                }
728
                }
751
                if( $file_type == Feed::FILE_TYPE_IMAGE) {
729
                if ($file_type == Feed::FILE_TYPE_IMAGE) {
752
                    try {
730
                    try {
753
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
731
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
754
                        if(!file_exists($target_path)) {
732
                        if (!file_exists($target_path)) {
755
                            mkdir($target_path, 0755);
733
                            mkdir($target_path, 0755);
Línea 756... Línea 734...
756
                        }
734
                        }
757
                        
735
 
758
                        list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.feed_image_size']);
736
                        list($target_width, $target_height) = explode('x', $this->config['leaderslinked.image_sizes.feed_image_size']);
759
 
737
 
760
                        $feed_filename = substr($feed_filename, 0, strrpos($feed_filename, '.'))  . '.png';
738
                        $feed_filename = substr($feed_filename, 0, strrpos($feed_filename, '.'))  . '.png';
761
                        //$crop_to_dimensions = false;
739
                        //$crop_to_dimensions = false;
762
                        //if(Image::uploadImage($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height, $crop_to_dimensions )) {
740
                        //if(Image::uploadImage($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height, $crop_to_dimensions )) {
763
                        if(Image::uploadImageWithoutCompletationSize($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height)) {
741
                        if (Image::uploadImageWithoutCompletationSize($feed_tmp_filename, $target_path, $feed_filename, $target_width, $target_height)) {
764
                        
742
 
765
                            $feed->file_type = $file_type;
743
                            $feed->file_type = $file_type;
766
                            $feed->file_name = basename($feed_filename);
744
                            $feed->file_name = basename($feed_filename);
767
                            $feedMapper->update($feed);
745
                            $feedMapper->update($feed);
768
                        }
746
                        }
769
                    } catch(\Throwable $e) {
747
                    } catch (\Throwable $e) {
770
                        error_log($e->getTraceAsString());
748
                        error_log($e->getTraceAsString());
771
                    }
749
                    }
772
                }
750
                }
773
                if( $file_type == Feed::FILE_TYPE_VIDEO) {
751
                if ($file_type == Feed::FILE_TYPE_VIDEO) {
774
                    try {
752
                    try {
775
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
753
                        $target_path = $this->config['leaderslinked.fullpath.feed'] . $feed->uuid;
776
                        if(!file_exists($target_path)) {
754
                        if (!file_exists($target_path)) {
Línea 777... Línea 755...
777
                            mkdir($target_path, 0755);
755
                            mkdir($target_path, 0755);
778
                        }
756
                        }
779
                        
757
 
780
                        $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
758
                        $full_filename = $target_path  . DIRECTORY_SEPARATOR . $feed_filename;
781
 
759
 
782
                        if($encoding == 'base64') {
-
 
783
                            $resultMoveOrRename = rename($feed_tmp_filename , $full_filename);
-
 
784
                        } else {
-
 
Línea -... Línea 760...
-
 
760
                        if ($encoding == 'base64') {
-
 
761
                            $resultMoveOrRename = rename($feed_tmp_filename, $full_filename);
-
 
762
                        } else {
785
                            $resultMoveOrRename = move_uploaded_file($feed_tmp_filename , $full_filename);
763
                            $resultMoveOrRename = move_uploaded_file($feed_tmp_filename, $full_filename);
786
                        }
764
                        }
787
                        
765
 
788
                        if($resultMoveOrRename) {
766
                        if ($resultMoveOrRename) {
789
                        
767
 
Línea 790... Línea 768...
790
 
768
 
791
                           // $getFromSecound = 2;
769
                            // $getFromSecound = 2;
792
                                
770
 
793
                            //extracción del cover
771
                            //extracción del cover
794
                            $generateFileName = substr($feed_filename, 0, strrpos($feed_filename, '.'));
772
                            $generateFileName = substr($feed_filename, 0, strrpos($feed_filename, '.'));
795
                            $generateFile =  $target_path  . DIRECTORY_SEPARATOR . $generateFileName .  '.jpg';
773
                            $generateFile =  $target_path  . DIRECTORY_SEPARATOR . $generateFileName .  '.jpg';
Línea 796... Línea 774...
796
 
774
 
797
                            $cmd        = "/usr/bin/ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width,duration  $full_filename";
775
                            $cmd        = "/usr/bin/ffprobe -v error -of flat=s=_ -select_streams v:0 -show_entries stream=height,width,duration  $full_filename";
798
                            //error_log($cmd);
776
                            //error_log($cmd);
799
                            
-
 
800
                            $response   = trim(shell_exec($cmd));
777
 
801
                            
778
                            $response   = trim(shell_exec($cmd));
802
                            $source_duration = 0;
779
 
803
 
780
                            $source_duration = 0;
804
                            
781
 
805
                            $lines = explode("\n", $response);
782
 
806
                            foreach($lines as $line)
783
                            $lines = explode("\n", $response);
807
                            {
784
                            foreach ($lines as $line) {
808
                                $line = trim(strtolower($line));
785
                                $line = trim(strtolower($line));
809
                                if(strpos($line, 'duration') !== false) {
786
                                if (strpos($line, 'duration') !== false) {
810
                                    $values = explode('=', $line);
787
                                    $values = explode('=', $line);
811
                                    $source_duration = intval(str_replace($values[1], '#', ''), 10);
788
                                    $source_duration = intval(str_replace($values[1], '#', ''), 10);
812
                                }
789
                                }
813
                            }
790
                            }
814
                            
791
 
815
                            
792
 
816
                            if($source_duration == 0) {
-
 
817
                                $second_extract = '00:00:02';
793
                            if ($source_duration == 0) {
818
                            } else {
794
                                $second_extract = '00:00:02';
819
                                if($source_duration > 10) {
795
                            } else {
820
                                    $second_extract = '00:00:10';
796
                                if ($source_duration > 10) {
821
                                } else {
797
                                    $second_extract = '00:00:10';
822
                                    $second_extract = '00:00:02';
798
                                } else {
823
                                }
799
                                    $second_extract = '00:00:02';
824
                                
800
                                }
Línea 825... Línea 801...
825
                            }
801
                            }
826
                            
802
 
827
                            $imageSize = $this->config['leaderslinked.image_sizes.feed_image_size'];
803
                            $imageSize = $this->config['leaderslinked.image_sizes.feed_image_size'];
828
                            
804
 
829
                            //$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";
805
                            //$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";
830
                            $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";
806
                            $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";
831
                            //error_log($cmd);
807
                            //error_log($cmd);
832
                            
808
 
833
 
809
 
834
                            exec($cmd);
810
                            exec($cmd);
835
                            
811
 
836
                          
812
 
837
                            $feed->file_type = $file_type;
813
                            $feed->file_type = $file_type;
838
                            $feed->file_name = basename($feed_filename);
814
                            $feed->file_name = basename($feed_filename);
839
                            $feed->file_image_preview = basename($generateFile);
815
                            $feed->file_image_preview = basename($generateFile);
840
                            $feedMapper->update($feed);
816
                            $feedMapper->update($feed);
841
                            
817
 
842
                            $videoConvert = new VideoConvert();
818
                            $videoConvert = new VideoConvert();
843
                            $videoConvert->filename = $full_filename;
819
                            $videoConvert->filename = $full_filename;
844
                            $videoConvert->type = VideoConvert::TYPE_FEED;
820
                            $videoConvert->type = VideoConvert::TYPE_FEED;
845
                            
821
 
Línea 846... Línea 822...
846
                            $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
822
                            $videoConvertMapper = VideoConvertMapper::getInstance($this->adapter);
847
                            $videoConvertMapper->insert($videoConvert);
823
                            $videoConvertMapper->insert($videoConvert);
848
                        } else {
824
                        } else {
849
                            error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename );
825
                            error_log('no se pudo mover o renombrar el documento : ' . $feed_tmp_filename . ' al directorio : ' . $full_filename);
850
                        }
826
                        }
851
                    } catch(\Throwable $e) {
827
                    } catch (\Throwable $e) {
852
                        error_log($e->getTraceAsString());
828
                        error_log($e->getTraceAsString());
853
                    }
829
                    }
854
                }
830
                }
855
 
831
 
856
 
832
 
857
                return [
833
                return [
858
                    'success'   => true,
834
                    'success'   => true,
859
                    'data'   => $this->renderFeed($feed->id, $now)
835
                    'data'   => $this->renderFeed($feed->id, $now)
860
                ];
-
 
861
           } else {
836
                ];
862
                return [
837
            } else {
863
                    'success'   => false,
838
                return [
864
                    'data'   => $feedMapper->getError()
839
                    'success'   => false,
865
                ];
840
                    'data'   => $feedMapper->getError()
866
           }
841
                ];
867
        } else {
842
            }
868
            $messages = [];
843
        } else {
869
            $form_messages = (array) $form->getMessages();
844
            $messages = [];
870
            foreach($form_messages  as $fieldname => $field_messages)
845
            $form_messages = (array) $form->getMessages();
871
            {
846
            foreach ($form_messages  as $fieldname => $field_messages) {
872
                $messages[$fieldname] = array_values($field_messages);
847
                $messages[$fieldname] = array_values($field_messages);
873
            }
848
            }
874
                    
849
 
875
            return [
850
            return [
876
                'success'   => false,
851
                'success'   => false,
877
               'data'   => $messages
852
                'data'   => $messages
878
            ];
853
            ];
Línea 879... Línea 854...
879
        }
854
        }
880
    }
855
    }
881
    
856
 
882
    public function likeAction()
857
    public function likeAction()
883
    {
858
    {
884
        $id = $this->params()->fromRoute('id');
859
        $id = $this->params()->fromRoute('id');
885
        
860
 
886
        $request = $this->getRequest();
861
        $request = $this->getRequest();
887
        if($request->isPost()) {
862
        if ($request->isPost()) {
888
            $currentUserPlugin = $this->plugin('currentUserPlugin');
863
            $currentUserPlugin = $this->plugin('currentUserPlugin');
889
            $currentUser = $currentUserPlugin->getUser();
864
            $currentUser = $currentUserPlugin->getUser();
890
 
865
 
891
            
866
 
892
            $feedMapper = FeedMapper::getInstance($this->adapter);
867
            $feedMapper = FeedMapper::getInstance($this->adapter);
893
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
868
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
894
            if(!$feed) {
869
            if (!$feed) {
895
                $response = [
870
                $response = [
896
                    'success' => false,
871
                    'success' => false,
897
                    'data' => 'ERROR_POST_NOT_FOUND'
872
                    'data' => 'ERROR_POST_NOT_FOUND'
898
                ];
873
                ];
899
                return new JsonModel($response);
874
                return new JsonModel($response);
900
            }
875
            }
901
            
876
 
902
            $likeMapper = LikeMapper::getInstance($this->adapter);
877
            $likeMapper = LikeMapper::getInstance($this->adapter);
903
            $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
878
            $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
904
            
879
 
905
            if($like) {
880
            if ($like) {
906
                $response = [
881
                $response = [
907
                    'success' => false,
-
 
908
                    'data' => 'ERROR_DUPLICATE_ACTION' 
882
                    'success' => false,
909
                ];
883
                    'data' => 'ERROR_DUPLICATE_ACTION'
910
                return new JsonModel($response);
884
                ];
911
            }
885
                return new JsonModel($response);
912
            
886
            }
913
            $like = new Like();
887
 
914
            $like->user_id = $currentUser->id;
888
            $like = new Like();
915
            $like->feed_id = $feed->id;
889
            $like->user_id = $currentUser->id;
916
            $like->relational = Like::RELATIONAL_FEED;
890
            $like->feed_id = $feed->id;
917
            
891
            $like->relational = Like::RELATIONAL_FEED;
918
            if($likeMapper->insert($like))
892
 
919
            {
893
            if ($likeMapper->insert($like)) {
920
                
894
 
921
                $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
895
                $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
922
                
896
 
923
                
897
 
924
                
898
 
925
                if($feed->type == Feed::TYPE_UPDATE) {
899
                if ($feed->type == Feed::TYPE_UPDATE) {
926
                    
900
 
927
                    
901
 
928
                    $userMapper = UserMapper::getInstance($this->adapter);
902
                    $userMapper = UserMapper::getInstance($this->adapter);
929
                    $ownerFeed = $userMapper->fetchOne($feed->user_id);
903
                    $ownerFeed = $userMapper->fetchOne($feed->user_id);
930
                    
904
 
931
                    $notification = new Notification();
905
                    $notification = new Notification();
932
                    $notification->type     = Notification::TYPE_LIKE_MY_FEED;
906
                    $notification->type     = Notification::TYPE_LIKE_MY_FEED;
933
                    $notification->read     = Notification::NO;
907
                    $notification->read     = Notification::NO;
934
                    $notification->user_id  = $feed->user_id;
-
 
935
                    $notification->feed_id  = $feed->id;
908
                    $notification->user_id  = $feed->user_id;
936
                    $notification->message  = 'LABEL_LIKE_MY_FEED';
909
                    $notification->feed_id  = $feed->id;
937
                    $notification->url      = $this->url()->fromRoute('dashboard',['feed' => $feed->uuid]);
910
                    $notification->message  = 'LABEL_LIKE_MY_FEED';
938
                    
911
                    $notification->url      = $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid]);
939
                    $notificationMapper = NotificationMapper::getInstance($this->adapter);
912
 
940
                    $notificationMapper->insert($notification);
913
                    $notificationMapper = NotificationMapper::getInstance($this->adapter);
941
                    
914
                    $notificationMapper->insert($notification);
942
                    $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
915
 
943
                    $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
916
                    $userNotificationMapper = UserNotificationSettingMapper::getInstance($this->adapter);
944
                    
917
                    $userNotification = $userNotificationMapper->fetchOne($ownerFeed->id);
945
                    if($userNotification && $userNotification->like_my_feed)
918
 
946
                    {
919
                    if ($userNotification && $userNotification->like_my_feed) {
947
                        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
920
                        $emailTemplateMapper = EmailTemplateMapper::getInstance($this->adapter);
948
                        $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_LIKE_MY_FEED, $currentUser->network_id);
921
                        $emailTemplate = $emailTemplateMapper->fetchOneByCodeAndNetworkId(EmailTemplate::CODE_LIKE_MY_FEED, $currentUser->network_id);
949
                        
922
 
950
                        if($emailTemplate) {
923
                        if ($emailTemplate) {
951
                            $arrayCont = [
924
                            $arrayCont = [
952
                                'firstname'             => $currentUser->first_name,
925
                                'firstname'             => $currentUser->first_name,
953
                                'lastname'              => $currentUser->last_name,
926
                                'lastname'              => $currentUser->last_name,
954
                                'other_user_firstname'  => $ownerFeed->first_name,
927
                                'other_user_firstname'  => $ownerFeed->first_name,
955
                                'other_user_lastname'   => $ownerFeed->last_name,
-
 
956
                                'company_name'          => '',
928
                                'other_user_lastname'   => $ownerFeed->last_name,
957
                                'group_name'            => '',
-
 
958
                                'content'               => '',
-
 
Línea -... Línea 929...
-
 
929
                                'company_name'          => '',
959
                                'code'                  => '',
930
                                'group_name'            => '',
-
 
931
                                'content'               => '',
960
                                'link'                  => $this->url()->fromRoute('dashboard',['feed' => $feed->uuid], ['force_canonical' => true])
932
                                'code'                  => '',
961
                            ];
933
                                'link'                  => $this->url()->fromRoute('dashboard', ['feed' => $feed->uuid], ['force_canonical' => true])
962
                            
934
                            ];
963
                            $email = new QueueEmail($this->adapter);
935
 
964
                            $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
936
                            $email = new QueueEmail($this->adapter);
965
                        }
937
                            $email->processEmailTemplate($emailTemplate, $arrayCont, $ownerFeed->email, trim($ownerFeed->first_name . ' ' . $ownerFeed->last_name));
966
                    }
938
                        }
967
              
939
                    }
968
                }
940
                }
Línea 985... Línea 957...
985
                    'success' => false,
957
                    'success' => false,
986
                    'data' => $likeMapper->getError()
958
                    'data' => $likeMapper->getError()
987
                ];
959
                ];
988
            }
960
            }
989
            return new JsonModel($response);
961
            return new JsonModel($response);
990
            
-
 
991
        }
962
        }
992
        
963
 
993
        $response = [
964
        $response = [
994
            'success' => false,
965
            'success' => false,
995
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
966
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
996
        ];
967
        ];
997
        return new JsonModel($response);
968
        return new JsonModel($response);
998
    }
969
    }
999
    
970
 
1000
    public function unlikeAction()
971
    public function unlikeAction()
1001
    {
972
    {
1002
        $id = $this->params()->fromRoute('id');
973
        $id = $this->params()->fromRoute('id');
1003
        
974
 
1004
        $request = $this->getRequest();
975
        $request = $this->getRequest();
1005
        if($request->isPost()) {
976
        if ($request->isPost()) {
1006
            $currentUserPlugin = $this->plugin('currentUserPlugin');
977
            $currentUserPlugin = $this->plugin('currentUserPlugin');
1007
            $currentUser = $currentUserPlugin->getUser();
978
            $currentUser = $currentUserPlugin->getUser();
Línea 1008... Línea 979...
1008
 
979
 
1009
            $feedMapper = FeedMapper::getInstance($this->adapter);
980
            $feedMapper = FeedMapper::getInstance($this->adapter);
1010
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
981
            $feed = $feedMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
1011
            if(!$feed) {
982
            if (!$feed) {
1012
                $response = [
983
                $response = [
1013
                    'success' => false,
984
                    'success' => false,
1014
                    'data' => 'ERROR_POST_NOT_FOUND'
985
                    'data' => 'ERROR_POST_NOT_FOUND'
1015
                ];
986
                ];
1016
                return new JsonModel($response);
987
                return new JsonModel($response);
1017
            }
988
            }
1018
            
989
 
1019
            $likeMapper = LikeMapper::getInstance($this->adapter);
990
            $likeMapper = LikeMapper::getInstance($this->adapter);
1020
            $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
991
            $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
1021
            
992
 
1022
            if(!$like) {
993
            if (!$like) {
1023
                $response = [
994
                $response = [
1024
                    'success' => false,
995
                    'success' => false,
1025
                    'data' => 'ERROR_DUPLICATE_ACTION'
996
                    'data' => 'ERROR_DUPLICATE_ACTION'
1026
                ];
997
                ];
1027
                return new JsonModel($response);
998
                return new JsonModel($response);
1028
            }
999
            }
1029
            
1000
 
1030
            if($likeMapper->deleteByFeedIdAndUserId($feed->id, $currentUser->id))
-
 
1031
            {
1001
            if ($likeMapper->deleteByFeedIdAndUserId($feed->id, $currentUser->id)) {
1032
                $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
1002
                $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
1033
                
1003
 
1034
                
1004
 
1035
                $response = [
1005
                $response = [
1036
                    'success' => true,
1006
                    'success' => true,
1037
                    'data' => [
1007
                    'data' => [
1038
                        'likes' => $likes
1008
                        'likes' => $likes
Línea 1043... Línea 1013...
1043
                    'success' => false,
1013
                    'success' => false,
1044
                    'data' => $likeMapper->getError()
1014
                    'data' => $likeMapper->getError()
1045
                ];
1015
                ];
1046
            }
1016
            }
1047
            return new JsonModel($response);
1017
            return new JsonModel($response);
1048
            
-
 
1049
        }
1018
        }
1050
        
1019
 
1051
        $response = [
1020
        $response = [
1052
            'success' => false,
1021
            'success' => false,
1053
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1022
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1054
        ];
1023
        ];
1055
        return new JsonModel($response);
1024
        return new JsonModel($response);
1056
    }
1025
    }
1057
    
-
 
1058
    public function timelineAction()
-
 
1059
    {
-
 
1060
        $utilMapper = UtilMapper::getInstance($this->adapter);
-
 
1061
        $now = $utilMapper->getDatebaseNow();
-
 
1062
        
-
 
1063
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1064
        $currentUser = $currentUserPlugin->getUser();
-
 
Línea -... Línea 1026...
-
 
1026
 
-
 
1027
    // public function timelineAction()
-
 
1028
    // {
-
 
1029
    //     $utilMapper = UtilMapper::getInstance($this->adapter);
-
 
1030
    //     $now = $utilMapper->getDatebaseNow();
-
 
1031
 
-
 
1032
    //     $currentUserPlugin = $this->plugin('currentUserPlugin');
1065
 
1033
    //     $currentUser = $currentUserPlugin->getUser();
-
 
1034
 
1066
       
1035
 
1067
        $type   = $this->params()->fromRoute('type');
1036
    //     $type   = $this->params()->fromRoute('type');
1068
        if($type == 'user') {
1037
    //     if($type == 'user') {
1069
            $id = $currentUser->id;
1038
    //         $id = $currentUser->id;
1070
        } else {
1039
    //     } else {
1071
            $id     = $this->params()->fromRoute('id');
1040
    //         $id     = $this->params()->fromRoute('id');
1072
        }
1041
    //     }
1073
        
1042
 
1074
        $feedHighlighted = 0;
1043
    //     $feedHighlighted = 0;
-
 
1044
    //     $feedUuid = $this->params()->fromRoute('feed');
-
 
1045
 
-
 
1046
 
-
 
1047
 
-
 
1048
    //     if($feedUuid) {
-
 
1049
    //         $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
1050
    //         $feed = $feedMapper->fetchOneByUuidAndNetworkIdAnyStatus($feedUuid, $currentUser->network_id);
-
 
1051
 
-
 
1052
    //         if($feed) {
-
 
1053
    //             $feedHighlighted = $feed->id;
-
 
1054
    //         }
-
 
1055
    //     }
-
 
1056
 
-
 
1057
 
-
 
1058
 
-
 
1059
    //     $request = $this->getRequest();
-
 
1060
    //     if($request->isGet()) {
-
 
1061
 
-
 
1062
    //         $page = (int) $this->params()->fromQuery('page');
-
 
1063
    //         if($type == 'user') {
-
 
1064
    //             $connectionMapper = ConnectionMapper::getInstance($this->adapter);
-
 
1065
    //             $records = $connectionMapper->fetchAllConnectionsByUser($id);
-
 
1066
 
-
 
1067
    //             $connectionIds = [0];
-
 
1068
    //             foreach($records as $record) 
-
 
1069
    //             {
-
 
1070
    //                 if($currentUser->id == $record->request_from) {
-
 
1071
    //                     array_push($connectionIds, $record->request_to);
-
 
1072
    //                 } else {
-
 
1073
    //                     array_push($connectionIds, $record->request_from);
-
 
1074
    //                 }
-
 
1075
    //             }
-
 
1076
    //             array_push($connectionIds, 1);
-
 
1077
 
-
 
1078
    //             $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
-
 
1079
    //             $records = $companyFollowerMapper->fetchAllByFollowerId($currentUser->id);
-
 
1080
 
-
 
1081
    //             $companyIds = [0];
-
 
1082
    //             foreach($records as $record)
-
 
1083
    //             {
-
 
1084
    //                 if(!in_array($record->company_id, $companyIds)) {
-
 
1085
    //                     array_push($companyIds, $record->company_id);
-
 
1086
    //                 }
-
 
1087
    //             }
-
 
1088
 
-
 
1089
    //             $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
1075
        $feedUuid = $this->params()->fromRoute('feed');
1090
    //             $companyUsers = $companyUserMapper->fetchAllByUserId($currentUser->id);
-
 
1091
 
-
 
1092
    //             foreach($companyUsers as $companyUser)
-
 
1093
    //             {
-
 
1094
    //                 if($companyUser->status == CompanyUser::STATUS_ACCEPTED) {
-
 
1095
    //                     if(!in_array($companyUser->company_id, $companyIds)) {
-
 
1096
    //                         array_push($companyIds, $companyUser->company_id);
-
 
1097
    //                     }
-
 
1098
    //                 }
-
 
1099
    //             }
-
 
1100
 
-
 
1101
 
-
 
1102
    //             $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1103
    //             $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1104
    //             $select->columns(['id']);
-
 
1105
    //             $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1106
    //             $select->where->equalTo('status', Feed::STATUS_PUBLISHED)
-
 
1107
    //                 ->AND->NEST
-
 
1108
    //                 ->OR->NEST->equalTo('user_id',$id)->and->equalTo('type', Feed::TYPE_UPDATE)->UNNEST
-
 
1109
    //                 ->OR->NEST->and->equalTo('type', Feed::TYPE_UPDATE)->and->equalTo('shared_with', Feed::SHARE_WITH_PUBLIC)->UNNEST
-
 
1110
    //                 ->OR->NEST->in('user_id', $connectionIds)->and->equalTo('type', Feed::TYPE_UPDATE)->and->equalTo('shared_with', Feed::SHARE_WITH_CONNECTIONS)->UNNEST
-
 
1111
    //                 ->OR->NEST->or->in('company_id', $companyIds)->and->equalTo('type', Feed::TYPE_COMPANY)->UNNEST
-
 
1112
    //                 ->UNNEST;
-
 
1113
    //             $select->order('added_on desc');
-
 
1114
 
-
 
1115
 
-
 
1116
    //         }
-
 
1117
    //         if($type == 'company') {
-
 
1118
    //             $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
1119
    //             $company = $companyMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
1120
 
-
 
1121
    //             if(!$company || $company->status != Company::STATUS_ACTIVE) {
-
 
1122
    //                 $id = 0;
-
 
1123
    //             } else {
-
 
1124
    //                 $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
-
 
1125
    //                 $companyFollower = $companyFollowerMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
1126
    //                 if($companyFollower) {
-
 
1127
    //                     $id = $company->id;
-
 
1128
    //                 } else {
-
 
1129
 
-
 
1130
    //                     $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
1131
    //                     $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
1132
 
-
 
1133
    //                     if(!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
-
 
1134
    //                         $id = 0;
-
 
1135
    //                     } else {
-
 
1136
    //                         $id = $company->id;
-
 
1137
    //                     }
-
 
1138
 
-
 
1139
    //                 }
-
 
1140
 
-
 
1141
    //             }
-
 
1142
 
-
 
1143
 
-
 
1144
    //             $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1145
    //             $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1146
    //             $select->columns(['id']);
-
 
1147
    //             $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1148
    //             $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
-
 
1149
    //             $select->where->equalTo('company_id',$id);
-
 
1150
    //             $select->where->and->equalTo('type', Feed::TYPE_COMPANY);
-
 
1151
    //             $select->order('added_on desc');
-
 
1152
    //         }
-
 
1153
    //         if($type == 'group') {
-
 
1154
    //             $groupMapper = GroupMapper::getInstance($this->adapter);
-
 
1155
    //             $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
1156
 
-
 
1157
    //             $id = 0;
-
 
1158
 
-
 
1159
    //             if($group && $group->status == Group::STATUS_ACTIVE) {
-
 
1160
    //                 $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
1161
    //                 $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
-
 
1162
    //                 if($groupMember) {
-
 
1163
 
-
 
1164
 
-
 
1165
    //                     if($groupMember->status == GroupMember::STATUS_ACCEPTED ||
-
 
1166
    //                         $groupMember->status == GroupMember::STATUS_AUTO_JOIN ) {
-
 
1167
 
-
 
1168
    //                         $id =  $groupMember->group_id;
-
 
1169
    //                     }
-
 
1170
 
-
 
1171
    //                 }
-
 
1172
    //             }
-
 
1173
 
-
 
1174
    //             $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1175
    //             $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1176
    //             $select->columns(['id']);
-
 
1177
    //             $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1178
    //             $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
-
 
1179
    //             $select->where->equalTo('group_id', $id);
-
 
1180
    //             $select->where->and->equalTo('type', Feed::TYPE_GROUP);
-
 
1181
    //             $select->order('added_on desc');
-
 
1182
 
-
 
1183
 
-
 
1184
    //         }
-
 
1185
 
-
 
1186
    //         $dbSelect = new DbSelect($select, $this->adapter);
-
 
1187
    //         $paginator = new Paginator($dbSelect);
-
 
1188
    //         $paginator->setCurrentPageNumber($page ? $page : 1);
-
 
1189
    //         $paginator->setItemCountPerPage(10);
-
 
1190
 
-
 
1191
    //         $items = [];
-
 
1192
 
-
 
1193
 
-
 
1194
    //         if($feedHighlighted) {
-
 
1195
 
-
 
1196
 
-
 
1197
    //             $items[] = $this->renderFeed($feedHighlighted, $now, $feedHighlighted);
-
 
1198
    //         }
-
 
1199
 
-
 
1200
    //         $feeds = $paginator->getCurrentItems();
-
 
1201
    //         foreach($feeds as $feed)
-
 
1202
    //         {
-
 
1203
    //             $items[] = $this->renderFeed($feed->id, $now, $feedHighlighted);
-
 
1204
    //         }
-
 
1205
 
-
 
1206
    //         $response = [
-
 
1207
    //             'success' => true,
-
 
1208
    //             'data' => [
-
 
1209
    //                 'total' => [
-
 
1210
    //                     'count' => $paginator->getTotalItemCount(),
-
 
1211
    //                     'pages' => $paginator->getPages()->pageCount,
-
 
1212
    //                 ],
-
 
1213
    //                 'current' => [
-
 
1214
    //                     'items'    => $items,
-
 
1215
    //                     'page'     => $paginator->getCurrentPageNumber(),
-
 
1216
    //                     'count'    => $paginator->getCurrentItemCount(),
-
 
1217
    //                 ]
-
 
1218
    //             ]
-
 
1219
    //         ];
-
 
1220
 
-
 
1221
 
-
 
1222
 
-
 
1223
    //         /*
-
 
1224
    //         if($feedHighlighted) {
-
 
1225
 
-
 
1226
 
-
 
1227
    //             $items[] = $this->renderFeed($feedHighlighted, $now, $feedHighlighted);
-
 
1228
 
-
 
1229
    //             $response = [
-
 
1230
    //                 'success' => true,
-
 
1231
    //                 'data' => [
-
 
1232
    //                     'total' => [
-
 
1233
    //                         'count' => 1,
-
 
1234
    //                         'pages' => 1,
-
 
1235
    //                     ],
-
 
1236
    //                     'current' => [
-
 
1237
    //                         'items'    => $items,
-
 
1238
    //                         'page'     => 1,
-
 
1239
    //                         'count'    => 1,
-
 
1240
    //                     ]
-
 
1241
    //                 ]
-
 
1242
    //             ];
-
 
1243
    //         } else {
-
 
1244
 
-
 
1245
 
-
 
1246
 
-
 
1247
    //             $feeds = $paginator->getCurrentItems();
-
 
1248
    //             foreach($feeds as $feed) 
-
 
1249
    //             {
-
 
1250
    //                 $items[] = $this->renderFeed($feed->id, $now, $feedHighlighted);
-
 
1251
    //             }
-
 
1252
 
-
 
1253
    //             $response = [
-
 
1254
    //                 'success' => true,
-
 
1255
    //                 'data' => [
-
 
1256
    //                     'total' => [
-
 
1257
    //                         'count' => $paginator->getTotalItemCount(),
-
 
1258
    //                         'pages' => $paginator->getPages()->pageCount,
-
 
1259
    //                     ],
-
 
1260
    //                     'current' => [
-
 
1261
    //                         'items'    => $items,
-
 
1262
    //                         'page'     => $paginator->getCurrentPageNumber(),
-
 
1263
    //                         'count'    => $paginator->getCurrentItemCount(),
-
 
1264
    //                     ]
-
 
1265
    //                 ]
-
 
1266
    //             ];
-
 
1267
    //         }*/
-
 
1268
 
-
 
1269
 
-
 
1270
 
-
 
1271
    //         return new JsonModel($response);
-
 
1272
    //     }
-
 
1273
 
-
 
1274
    //     $response = [
-
 
1275
    //         'success' => false,
-
 
1276
    //         'data' => 'ERROR_METHOD_NOT_ALLOWED'
Línea 1076... Línea -...
1076
        
-
 
1077
 
-
 
1078
    
-
 
1079
        if($feedUuid) {
-
 
Línea 1080... Línea -...
1080
            $feedMapper = FeedMapper::getInstance($this->adapter);
-
 
1081
            $feed = $feedMapper->fetchOneByUuidAndNetworkIdAnyStatus($feedUuid, $currentUser->network_id);
-
 
1082
 
-
 
1083
            if($feed) {
-
 
1084
                $feedHighlighted = $feed->id;
-
 
1085
            }
-
 
1086
        }
-
 
1087
        
-
 
1088
 
-
 
1089
        
-
 
1090
        $request = $this->getRequest();
-
 
1091
        if($request->isGet()) {
-
 
1092
        
-
 
1093
            $page = (int) $this->params()->fromQuery('page');
-
 
1094
            if($type == 'user') {
-
 
1095
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
-
 
1096
                $records = $connectionMapper->fetchAllConnectionsByUser($id);
-
 
1097
                
-
 
1098
                $connectionIds = [0];
-
 
1099
                foreach($records as $record) 
-
 
1100
                {
-
 
1101
                    if($currentUser->id == $record->request_from) {
-
 
1102
                        array_push($connectionIds, $record->request_to);
-
 
1103
                    } else {
-
 
1104
                        array_push($connectionIds, $record->request_from);
-
 
1105
                    }
-
 
1106
                }
-
 
1107
                array_push($connectionIds, 1);
-
 
1108
                
-
 
1109
                $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
-
 
1110
                $records = $companyFollowerMapper->fetchAllByFollowerId($currentUser->id);
-
 
1111
                
-
 
1112
                $companyIds = [0];
-
 
1113
                foreach($records as $record)
-
 
1114
                {
-
 
1115
                    if(!in_array($record->company_id, $companyIds)) {
-
 
1116
                        array_push($companyIds, $record->company_id);
-
 
1117
                    }
-
 
1118
                }
-
 
1119
                
-
 
1120
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
1121
                $companyUsers = $companyUserMapper->fetchAllByUserId($currentUser->id);
-
 
1122
                
-
 
1123
                foreach($companyUsers as $companyUser)
-
 
1124
                {
-
 
1125
                    if($companyUser->status == CompanyUser::STATUS_ACCEPTED) {
-
 
1126
                        if(!in_array($companyUser->company_id, $companyIds)) {
-
 
1127
                            array_push($companyIds, $companyUser->company_id);
-
 
1128
                        }
-
 
1129
                    }
-
 
1130
                }
-
 
1131
                
-
 
1132
                
-
 
1133
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1134
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1135
                $select->columns(['id']);
-
 
1136
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1137
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED)
-
 
1138
                    ->AND->NEST
-
 
1139
                    ->OR->NEST->equalTo('user_id',$id)->and->equalTo('type', Feed::TYPE_UPDATE)->UNNEST
-
 
1140
                    ->OR->NEST->and->equalTo('type', Feed::TYPE_UPDATE)->and->equalTo('shared_with', Feed::SHARE_WITH_PUBLIC)->UNNEST
-
 
1141
                    ->OR->NEST->in('user_id', $connectionIds)->and->equalTo('type', Feed::TYPE_UPDATE)->and->equalTo('shared_with', Feed::SHARE_WITH_CONNECTIONS)->UNNEST
-
 
1142
                    ->OR->NEST->or->in('company_id', $companyIds)->and->equalTo('type', Feed::TYPE_COMPANY)->UNNEST
-
 
1143
                    ->UNNEST;
-
 
1144
                $select->order('added_on desc');
-
 
1145
 
-
 
1146
 
-
 
1147
            }
-
 
1148
            if($type == 'company') {
-
 
1149
                $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
1150
                $company = $companyMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
1151
          
-
 
1152
                if(!$company || $company->status != Company::STATUS_ACTIVE) {
-
 
1153
                    $id = 0;
-
 
1154
                } else {
-
 
1155
                    $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
-
 
1156
                    $companyFollower = $companyFollowerMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
1157
                    if($companyFollower) {
-
 
1158
                        $id = $company->id;
-
 
1159
                    } else {
-
 
1160
                        
-
 
1161
                        $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
1162
                        $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
1163
                        
-
 
1164
                        if(!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
-
 
1165
                            $id = 0;
-
 
1166
                        } else {
-
 
1167
                            $id = $company->id;
-
 
1168
                        }
-
 
1169
                        
-
 
1170
                    }
-
 
1171
                    
-
 
1172
                }
-
 
1173
                
-
 
1174
                
-
 
1175
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1176
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1177
                $select->columns(['id']);
-
 
1178
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1179
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
-
 
1180
                $select->where->equalTo('company_id',$id);
-
 
1181
                $select->where->and->equalTo('type', Feed::TYPE_COMPANY);
-
 
1182
                $select->order('added_on desc');
-
 
1183
            }
-
 
1184
            if($type == 'group') {
-
 
1185
                $groupMapper = GroupMapper::getInstance($this->adapter);
-
 
1186
                $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
1187
                
-
 
1188
                $id = 0;
-
 
1189
                
-
 
1190
                if($group && $group->status == Group::STATUS_ACTIVE) {
-
 
1191
                    $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
1192
                    $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
-
 
1193
                    if($groupMember) {
-
 
1194
               
-
 
1195
                        
-
 
1196
                        if($groupMember->status == GroupMember::STATUS_ACCEPTED ||
-
 
1197
                            $groupMember->status == GroupMember::STATUS_AUTO_JOIN ) {
-
 
1198
                        
-
 
1199
                            $id =  $groupMember->group_id;
-
 
1200
                        }
-
 
1201
                        
-
 
1202
                    }
-
 
1203
                }
-
 
1204
                
-
 
1205
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1206
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1207
                $select->columns(['id']);
-
 
1208
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1209
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
-
 
1210
                $select->where->equalTo('group_id', $id);
-
 
1211
                $select->where->and->equalTo('type', Feed::TYPE_GROUP);
-
 
1212
                $select->order('added_on desc');
-
 
1213
                
-
 
1214
 
-
 
1215
            }
-
 
1216
                
-
 
1217
            $dbSelect = new DbSelect($select, $this->adapter);
-
 
1218
            $paginator = new Paginator($dbSelect);
-
 
1219
            $paginator->setCurrentPageNumber($page ? $page : 1);
-
 
1220
            $paginator->setItemCountPerPage(10);
-
 
1221
            
-
 
1222
            $items = [];
-
 
1223
            
-
 
1224
            
-
 
1225
            if($feedHighlighted) {
-
 
1226
                
-
 
1227
                
-
 
1228
                $items[] = $this->renderFeed($feedHighlighted, $now, $feedHighlighted);
-
 
1229
            }
-
 
1230
            
-
 
1231
            $feeds = $paginator->getCurrentItems();
-
 
1232
            foreach($feeds as $feed)
-
 
1233
            {
-
 
1234
                $items[] = $this->renderFeed($feed->id, $now, $feedHighlighted);
-
 
1235
            }
-
 
1236
            
-
 
1237
            $response = [
-
 
1238
                'success' => true,
-
 
1239
                'data' => [
-
 
1240
                    'total' => [
-
 
1241
                        'count' => $paginator->getTotalItemCount(),
-
 
1242
                        'pages' => $paginator->getPages()->pageCount,
-
 
1243
                    ],
-
 
1244
                    'current' => [
-
 
1245
                        'items'    => $items,
-
 
1246
                        'page'     => $paginator->getCurrentPageNumber(),
-
 
1247
                        'count'    => $paginator->getCurrentItemCount(),
-
 
1248
                    ]
-
 
1249
                ]
-
 
1250
            ];
-
 
1251
            
-
 
1252
            
-
 
1253
            
-
 
1254
            /*
-
 
1255
            if($feedHighlighted) {
-
 
1256
                
-
 
1257
 
-
 
1258
                $items[] = $this->renderFeed($feedHighlighted, $now, $feedHighlighted);
-
 
1259
                
-
 
1260
                $response = [
-
 
1261
                    'success' => true,
-
 
1262
                    'data' => [
-
 
1263
                        'total' => [
-
 
1264
                            'count' => 1,
-
 
1265
                            'pages' => 1,
-
 
1266
                        ],
-
 
1267
                        'current' => [
-
 
1268
                            'items'    => $items,
-
 
1269
                            'page'     => 1,
-
 
1270
                            'count'    => 1,
-
 
1271
                        ]
-
 
1272
                    ]
-
 
1273
                ];
-
 
1274
            } else {
-
 
1275
            
-
 
1276
            
-
 
1277
            
-
 
1278
                $feeds = $paginator->getCurrentItems();
-
 
1279
                foreach($feeds as $feed) 
-
 
1280
                {
-
 
1281
                    $items[] = $this->renderFeed($feed->id, $now, $feedHighlighted);
-
 
1282
                }
-
 
1283
                
-
 
1284
                $response = [
-
 
1285
                    'success' => true,
-
 
1286
                    'data' => [
-
 
1287
                        'total' => [
-
 
1288
                            'count' => $paginator->getTotalItemCount(),
-
 
1289
                            'pages' => $paginator->getPages()->pageCount,
-
 
1290
                        ],
-
 
1291
                        'current' => [
-
 
1292
                            'items'    => $items,
-
 
1293
                            'page'     => $paginator->getCurrentPageNumber(),
-
 
1294
                            'count'    => $paginator->getCurrentItemCount(),
-
 
1295
                        ]
-
 
1296
                    ]
-
 
1297
                ];
-
 
1298
            }*/
-
 
1299
                
1277
    //     ];
1300
  
1278
 
1301
                
-
 
1302
            return new JsonModel($response);
-
 
1303
        }
-
 
1304
        
-
 
1305
        $response = [
-
 
Línea 1306... Línea -...
1306
            'success' => false,
-
 
1307
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1308
        ];
-
 
1309
 
-
 
1310
    
1279
 
1311
        return new JsonModel($response);
1280
    //     return new JsonModel($response);
1312
    }
1281
    // }
1313
    
1282
 
1314
    /**
1283
    /**
1315
     * 
1284
     * 
1316
     * @param string $str
1285
     * @param string $str
1317
     * @return string
1286
     * @return string
1318
     */
1287
     */
1319
    private function normalizeString ($str = '')
1288
    private function normalizeString($str = '')
1320
    {
1289
    {
1321
        $basename  = substr($str, 0, strrpos($str, '.'));
1290
        $basename  = substr($str, 0, strrpos($str, '.'));
1322
        $basename  = str_replace('.', '-', $basename);
1291
        $basename  = str_replace('.', '-', $basename);
1323
        
1292
 
1324
        $extension  = substr($str, strrpos($str, '.'));
1293
        $extension  = substr($str, strrpos($str, '.'));
1325
        
1294
 
1326
        $str = $basename . $extension;
1295
        $str = $basename . $extension;
1327
        
1296
 
1328
        $str = strip_tags($str);
1297
        $str = strip_tags($str);
1329
        $str = preg_replace('/[\r\n\t ]+/', ' ', $str);
1298
        $str = preg_replace('/[\r\n\t ]+/', ' ', $str);
1330
        $str = preg_replace('/[\"\*\/\:\<\>\?\'\|\,]+/', ' ', $str);
1299
        $str = preg_replace('/[\"\*\/\:\<\>\?\'\|\,]+/', ' ', $str);
1331
        $str = strtolower($str);
1300
        $str = strtolower($str);
1332
        $str = html_entity_decode( $str, ENT_QUOTES, "utf-8" );
1301
        $str = html_entity_decode($str, ENT_QUOTES, "utf-8");
1333
        $str = htmlentities($str, ENT_QUOTES, "utf-8");
1302
        $str = htmlentities($str, ENT_QUOTES, "utf-8");
1334
        $str = preg_replace("/(&)([a-z])([a-z]+;)/i", '$2', $str);
1303
        $str = preg_replace("/(&)([a-z])([a-z]+;)/i", '$2', $str);
1335
        $str = str_replace(' ', '-', $str);
1304
        $str = str_replace(' ', '-', $str);
1336
        $str = rawurlencode($str);
1305
        $str = rawurlencode($str);
1337
        $str = str_replace('%', '-', $str);
1306
        $str = str_replace('%', '-', $str);
1338
        return trim(strtolower($str));
1307
        return trim(strtolower($str));
1339
    }
1308
    }
1340
    
1309
 
1341
    
1310
 
1342
    
1311
 
1343
    /**
1312
    /**
1344
     * 
1313
     * 
1345
     * @param int $feed_id
1314
     * @param int $feed_id
1346
     * @return array
1315
     * @return array
1347
     */
1316
     */
1348
    private function renderFeed($feed_id, $now, $feedHighlighted = 0)
1317
    private function renderFeed($feed_id, $now, $feedHighlighted = 0)
1349
    {
1318
    {
Línea 1350... Línea 1319...
1350
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1319
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1351
        $currentUser = $currentUserPlugin->getUser();
1320
        $currentUser = $currentUserPlugin->getUser();
1352
        
1321
 
1353
        //$acl = $this->getEvent()->getViewModel()->getVariable('acl');
1322
        //$acl = $this->getEvent()->getViewModel()->getVariable('acl');
1354
 
1323
 
1355
        $userMapper = UserMapper::getInstance($this->adapter);
1324
        $userMapper = UserMapper::getInstance($this->adapter);
1356
        $feedMapper = FeedMapper::getInstance($this->adapter);
1325
        $feedMapper = FeedMapper::getInstance($this->adapter);
1357
        $feed = $feedMapper->fetchOneAnyStatus($feed_id);
1326
        $feed = $feedMapper->fetchOneAnyStatus($feed_id);
1358
        
1327
 
1359
        
1328
 
1360
     
1329
 
1361
        
1330
 
1362
        
1331
 
1363
        $likeMapper = LikeMapper::getInstance($this->adapter);
1332
        $likeMapper = LikeMapper::getInstance($this->adapter);
1364
        $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
1333
        $like = $likeMapper->fetchOneByFeedIdAndUserId($feed->id, $currentUser->id);
1365
        $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
1334
        $likes = $likeMapper->fetchCountLikeByFeedId($feed->id);
1366
       
1335
 
1367
        $params = [
1336
        $params = [
1368
            'id' => $feed->uuid
1337
            'id' => $feed->uuid
1369
        ];
1338
        ];
1370
        if($feed->company_id) {
1339
        if ($feed->company_id) {
1371
            $companyMapper = CompanyMapper::getInstance($this->adapter);
1340
            $companyMapper = CompanyMapper::getInstance($this->adapter);
1372
            $company = $companyMapper->fetchOne($feed->company_id);
1341
            $company = $companyMapper->fetchOne($feed->company_id);
1373
            
1342
 
1374
            $params['company_id'] = $company->uuid;
1343
            $params['company_id'] = $company->uuid;
1375
        } else {
1344
        } else {
1376
            $company = null;
1345
            $company = null;
1377
        }
1346
        }
1378
        if($feed->group_id) {
1347
        if ($feed->group_id) {
1379
            $groupMapper = GroupMapper::getInstance($this->adapter);
1348
            $groupMapper = GroupMapper::getInstance($this->adapter);
1380
            $group = $groupMapper->fetchOne($feed->group_id);
1349
            $group = $groupMapper->fetchOne($feed->group_id);
1381
            
1350
 
1382
            $params['group_id'] = $group->uuid;
1351
            $params['group_id'] = $group->uuid;
1383
        } else {
1352
        } else {
1384
            $group = null;
1353
            $group = null;
1385
        }
1354
        }
1386
        
1355
 
1387
 
1356
 
1388
        $timestamp = time();
1357
        $timestamp = time();
1389
        
1358
 
1390
        list($usec, $sec) = explode(' ', microtime());
1359
        list($usec, $sec) = explode(' ', microtime());
1391
        $seed = intval($sec + ((float) $usec * 100000));
1360
        $seed = intval($sec + ((float) $usec * 100000));
1392
        mt_srand($seed, MT_RAND_MT19937);
1361
        mt_srand($seed, MT_RAND_MT19937);
1393
        $rand =  mt_rand();
1362
        $rand =  mt_rand();
1394
        
1363
 
1395
        
1364
 
1396
        
1365
 
1397
        $password  = md5('user-' . $currentUser->uuid . '-feed-' . $feed->uuid . '-timestamp-' . $timestamp . '-rand-' . $rand . '-share-key-' . $currentUser->share_key) ;
1366
        $password  = md5('user-' . $currentUser->uuid . '-feed-' . $feed->uuid . '-timestamp-' . $timestamp . '-rand-' . $rand . '-share-key-' . $currentUser->share_key);
1398
        
1367
 
1399
        
1368
 
1400
        $share_params = [
1369
        $share_params = [
1401
            'type' => 'feed', 
1370
            'type' => 'feed',
1402
            'code' => $feed->uuid,
1371
            'code' => $feed->uuid,
Línea 1403... Línea 1372...
1403
            'user' => $currentUser->uuid,
1372
            'user' => $currentUser->uuid,
1404
            'timestamp' => $timestamp,
1373
            'timestamp' => $timestamp,
1405
            'rand' => $rand,
1374
            'rand' => $rand,
1406
            'password' => $password,
1375
            'password' => $password,
1407
        ];
1376
        ];
1408
 
1377
 
1409
        
1378
 
1410
        $share_increment_external_counter_url = $this->url()->fromRoute('share/increment-external-counter', $share_params  , ['force_canonical' => true]);
1379
        $share_increment_external_counter_url = $this->url()->fromRoute('share/increment-external-counter', $share_params, ['force_canonical' => true]);
1411
       
1380
 
1412
        
1381
 
1413
        $share_external_url = $this->url()->fromRoute('shorter/generate', ['code' => $feed->uuid, 'type' => 'feed' ]  , ['force_canonical' => true]);
1382
        $share_external_url = $this->url()->fromRoute('shorter/generate', ['code' => $feed->uuid, 'type' => 'feed'], ['force_canonical' => true]);
Línea 1423... Línea 1392...
1423
            'feed_increment_external_counter_url' => $share_increment_external_counter_url,
1392
            'feed_increment_external_counter_url' => $share_increment_external_counter_url,
1424
            'feed_delete_url' =>  '',
1393
            'feed_delete_url' =>  '',
1425
            'feed_content_type' => $feed->file_type ? $feed->file_type : '',
1394
            'feed_content_type' => $feed->file_type ? $feed->file_type : '',
1426
            'feed_likes' =>  $likes,
1395
            'feed_likes' =>  $likes,
1427
            'feed_highlighted' => $feed->id == $feedHighlighted ? 1 : 0,
1396
            'feed_highlighted' => $feed->id == $feedHighlighted ? 1 : 0,
1428
           
1397
 
1429
        ];
1398
        ];
1430
        
1399
 
1431
        if($feed->posted_or_shared == Feed::POSTED) {
1400
        if ($feed->posted_or_shared == Feed::POSTED) {
1432
        
1401
 
1433
  
1402
 
1434
            if($feed->type == Feed::TYPE_COMPANY)
1403
            if ($feed->type == Feed::TYPE_COMPANY) {
1435
            {
-
 
1436
                $companyMapper = CompanyMapper::getInstance($this->adapter);
1404
                $companyMapper = CompanyMapper::getInstance($this->adapter);
1437
                $company = $companyMapper->fetchOne($feed->company_id);
1405
                $company = $companyMapper->fetchOne($feed->company_id);
1438
                $item['owner_url'] = $this->url()->fromRoute('company/view', ['id' => $company->uuid]);
1406
                $item['owner_url'] = $this->url()->fromRoute('company/view', ['id' => $company->uuid]);
1439
                $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $company->uuid, 'type' => 'company', 'filename' => $company->image]);
1407
                $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $company->uuid, 'type' => 'company', 'filename' => $company->image]);
1440
                $item['owner_name'] = $company->name;
1408
                $item['owner_name'] = $company->name;
Línea 1446... Línea 1414...
1446
                
1414
                
1447
                if( $companyUser && $acl->isAllowed( $currentUser->usertype_id, 'my-company/feed' ) ) {
1415
                if( $companyUser && $acl->isAllowed( $currentUser->usertype_id, 'my-company/feed' ) ) {
1448
                    $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1416
                    $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1449
                }
1417
                }
1450
                */
-
 
1451
                
-
 
1452
                
1418
                */
1453
            } else if($feed->type == Feed::TYPE_GROUP)
-
 
1454
            {
1419
            } else if ($feed->type == Feed::TYPE_GROUP) {
1455
                $groupMapper = GroupMapper::getInstance($this->adapter);
1420
                $groupMapper = GroupMapper::getInstance($this->adapter);
1456
                $group = $groupMapper->fetchOne($feed->group_id);
1421
                $group = $groupMapper->fetchOne($feed->group_id);
1457
                $item['owner_url'] = '';
1422
                $item['owner_url'] = '';
1458
                $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $group->uuid, 'type' => 'group', 'filename' => $group->image]);
1423
                $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $group->uuid, 'type' => 'group', 'filename' => $group->image]);
1459
                $item['owner_name'] = $group->name;
1424
                $item['owner_name'] = $group->name;
1460
                
1425
 
1461
                if($group->user_id == $currentUser->id) {
1426
                if ($group->user_id == $currentUser->id) {
1462
                    $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1427
                    $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1463
                }
1428
                }
1464
            } else {
1429
            } else {
1465
                $userMapper = UserMapper::getInstance($this->adapter);
1430
                $userMapper = UserMapper::getInstance($this->adapter);
1466
                $user = $userMapper->fetchOne($feed->user_id);
1431
                $user = $userMapper->fetchOne($feed->user_id);
1467
                
1432
 
1468
                $item['owner_url'] = $this->url()->fromRoute('profile/view', ['id' => $user->uuid]);
1433
                $item['owner_url'] = $this->url()->fromRoute('profile/view', ['id' => $user->uuid]);
1469
                $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]);
1434
                $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]);
1470
                $item['owner_name'] = $user->first_name . ' ' . $user->last_name;
1435
                $item['owner_name'] = $user->first_name . ' ' . $user->last_name;
1471
            
1436
 
1472
                if($feed->user_id == $currentUser->id) {
1437
                if ($feed->user_id == $currentUser->id) {
1473
                    $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1438
                    $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1474
                }
-
 
1475
            
1439
                }
1476
            } 
1440
            }
1477
        } else {
1441
        } else {
1478
            if($feed->user_id == $currentUser->id) {
1442
            if ($feed->user_id == $currentUser->id) {
1479
                $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1443
                $item['feed_delete_url'] = $this->url()->fromRoute('feed/delete',  $params);
1480
            }
1444
            }
1481
        }
1445
        }
1482
    
1446
 
1483
        $userMapper = UserMapper::getInstance($this->adapter);
1447
        $userMapper = UserMapper::getInstance($this->adapter);
1484
        $user = $userMapper->fetchOne($feed->user_id);
1448
        $user = $userMapper->fetchOne($feed->user_id);
1485
        
1449
 
1486
        if($feed->posted_or_shared == Feed::SHARED) {
1450
        if ($feed->posted_or_shared == Feed::SHARED) {
1487
            $item['owner_url'] = $this->url()->fromRoute('profile/view', ['id' => $user->uuid]);
1451
            $item['owner_url'] = $this->url()->fromRoute('profile/view', ['id' => $user->uuid]);
1488
            $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]);
1452
            $item['owner_image'] = $this->url()->fromRoute('storage', ['code' => $user->uuid, 'type' => 'user', 'filename' => $user->image]);
1489
            $item['owner_name'] = $user->first_name . ' ' . $user->last_name;
1453
            $item['owner_name'] = $user->first_name . ' ' . $user->last_name;
1490
        }
1454
        }
1491
        
1455
 
1492
        $item['owner_description'] = $feed->description;
1456
        $item['owner_description'] = $feed->description;
1493
        
1457
 
1494
        $item['owner_shared'] = $feed->total_shared;
1458
        $item['owner_shared'] = $feed->total_shared;
1495
        $item['owner_external_shared'] = $feed->total_external_shared;
1459
        $item['owner_external_shared'] = $feed->total_external_shared;
1496
        $item['owner_comments'] = $feed->total_comments;
1460
        $item['owner_comments'] = $feed->total_comments;
1497
        
1461
 
1498
        
1462
 
1499
        $item['owner_time_elapse'] = Functions::timeAgo($feed->added_on, $now);
1463
        $item['owner_time_elapse'] = Functions::timeAgo($feed->added_on, $now);
1500
        
1464
 
1501
        if($feed->file_type == Feed::FILE_TYPE_IMAGE) {
1465
        if ($feed->file_type == Feed::FILE_TYPE_IMAGE) {
1502
            $item['owner_file_image'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
-
 
1503
            
1466
            $item['owner_file_image'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1504
        }
1467
        }
1505
        if($feed->file_type == Feed::FILE_TYPE_DOCUMENT) {
1468
        if ($feed->file_type == Feed::FILE_TYPE_DOCUMENT) {
1506
            $item['owner_file_document'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1469
            $item['owner_file_document'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1507
        }
1470
        }
1508
        if($feed->file_type == Feed::FILE_TYPE_VIDEO) {
1471
        if ($feed->file_type == Feed::FILE_TYPE_VIDEO) {
1509
            $item['owner_file_image_preview'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_image_preview]);
1472
            $item['owner_file_image_preview'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_image_preview]);
1510
            $item['owner_file_video'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1473
            $item['owner_file_video'] = $this->url()->fromRoute('storage', ['code' => $feed->uuid, 'type' => 'feed', 'filename' => $feed->file_name]);
1511
        }
1474
        }
1512
        
1475
 
1513
        if($feed->posted_or_shared == Feed::SHARED) {
1476
        if ($feed->posted_or_shared == Feed::SHARED) {
1514
            
1477
 
1515
            
1478
 
1516
            $sharedFeed = $feedMapper->fetchOneAnyStatus($feed->shared_feed_id);
1479
            $sharedFeed = $feedMapper->fetchOneAnyStatus($feed->shared_feed_id);
1517
            
1480
 
1518
    
1481
 
1519
            
1482
 
1520
            
1483
 
1521
            $item['shared_description'] = $sharedFeed->description;
1484
            $item['shared_description'] = $sharedFeed->description;
1522
            $item['shared_time_elapse'] = Functions::timeAgo( $sharedFeed->added_on, $now);
1485
            $item['shared_time_elapse'] = Functions::timeAgo($sharedFeed->added_on, $now);
1523
            
1486
 
1524
            if($sharedFeed->file_type == Feed::FILE_TYPE_IMAGE) {
1487
            if ($sharedFeed->file_type == Feed::FILE_TYPE_IMAGE) {
1525
                $item['shared_file_image'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_name]);
-
 
1526
                
1488
                $item['shared_file_image'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_name]);
1527
            }
1489
            }
1528
            if($sharedFeed->file_type == Feed::FILE_TYPE_DOCUMENT) {
1490
            if ($sharedFeed->file_type == Feed::FILE_TYPE_DOCUMENT) {
1529
                $item['shared_file_document'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_name]);
1491
                $item['shared_file_document'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_name]);
1530
            }
1492
            }
1531
            if($sharedFeed->file_type == Feed::FILE_TYPE_VIDEO) {
1493
            if ($sharedFeed->file_type == Feed::FILE_TYPE_VIDEO) {
1532
                $item['shared_file_image_preview'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_image_preview]);
1494
                $item['shared_file_image_preview'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_image_preview]);
1533
                $item['shared_file_video'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_name]);
1495
                $item['shared_file_video'] = $this->url()->fromRoute('storage', ['code' => $sharedFeed->uuid, 'type' => 'feed', 'filename' => $sharedFeed->file_name]);
1534
            }
1496
            }
1535
            
1497
 
1536
            $item['shared_content_type'] = $sharedFeed->file_type ? $sharedFeed->file_type : '';
1498
            $item['shared_content_type'] = $sharedFeed->file_type ? $sharedFeed->file_type : '';
1537
            
1499
 
1538
            if($feed->company_id)
-
 
1539
            {
1500
            if ($feed->company_id) {
1540
                
1501
 
1541
                $companyMapper = CompanyMapper::getInstance($this->adapter);
1502
                $companyMapper = CompanyMapper::getInstance($this->adapter);
1542
                $sharedCompany = $companyMapper->fetchOne($feed->company_id);
1503
                $sharedCompany = $companyMapper->fetchOne($feed->company_id);
1543
                $item['shared_url'] = $this->url()->fromRoute('company/view', ['id' => $sharedCompany->uuid]);
1504
                $item['shared_url'] = $this->url()->fromRoute('company/view', ['id' => $sharedCompany->uuid]);
1544
                $item['shared_image'] = $this->url()->fromRoute('storage', ['code' => $sharedCompany->uuid, 'type' => 'company', 'filename' => $sharedCompany->image]);
1505
                $item['shared_image'] = $this->url()->fromRoute('storage', ['code' => $sharedCompany->uuid, 'type' => 'company', 'filename' => $sharedCompany->image]);
1545
                $item['shared_name'] = $sharedCompany->name;
1506
                $item['shared_name'] = $sharedCompany->name;
1546
            } else if($feed->group_id)
-
 
1547
            {
1507
            } else if ($feed->group_id) {
1548
                $groupMapper = GroupMapper::getInstance($this->adapter);
1508
                $groupMapper = GroupMapper::getInstance($this->adapter);
1549
                $sharedGroup = $groupMapper->fetchOne($feed->group_id);
1509
                $sharedGroup = $groupMapper->fetchOne($feed->group_id);
1550
                $item['shared_url'] = ''; 
1510
                $item['shared_url'] = '';
1551
                $item['shared_image'] = $this->url()->fromRoute('storage', ['code' => $sharedGroup->uuid, 'type' => 'group', 'filename' =>  $sharedGroup->image]);
1511
                $item['shared_image'] = $this->url()->fromRoute('storage', ['code' => $sharedGroup->uuid, 'type' => 'group', 'filename' =>  $sharedGroup->image]);
1552
                $item['shared_name'] = $sharedGroup->name;
1512
                $item['shared_name'] = $sharedGroup->name;
1553
            } else {
1513
            } else {
1554
               
1514
 
1555
                $sharedUser = $userMapper->fetchOne($sharedFeed->user_id);
1515
                $sharedUser = $userMapper->fetchOne($sharedFeed->user_id);
1556
                $item['shared_url'] = $this->url()->fromRoute('profile/view', ['id' => $sharedUser->uuid]);
1516
                $item['shared_url'] = $this->url()->fromRoute('profile/view', ['id' => $sharedUser->uuid]);
1557
                $item['shared_image'] = $this->url()->fromRoute('storage', ['code' => $sharedUser->uuid, 'type' => 'user', 'filename' => $sharedUser->image]);
1517
                $item['shared_image'] = $this->url()->fromRoute('storage', ['code' => $sharedUser->uuid, 'type' => 'user', 'filename' => $sharedUser->image]);
1558
                $item['shared_name'] = $sharedUser->first_name . ' ' . $sharedUser->last_name;
1518
                $item['shared_name'] = $sharedUser->first_name . ' ' . $sharedUser->last_name;
1559
            }
-
 
1560
            
1519
            }
1561
        }
1520
        }
1562
        
1521
 
1563
        $commentMapper = CommentMapper::getInstance($this->adapter);
1522
        $commentMapper = CommentMapper::getInstance($this->adapter);
1564
        $records = $commentMapper->fetchAllPublishedByFeedId($feed->id);
1523
        $records = $commentMapper->fetchAllPublishedByFeedId($feed->id);
1565
        
1524
 
1566
        $comments = [];
1525
        $comments = [];
1567
        foreach($records as $record)
-
 
1568
        {
1526
        foreach ($records as $record) {
Línea 1569... Línea 1527...
1569
            $user = $userMapper->fetchOne($record->user_id);
1527
            $user = $userMapper->fetchOne($record->user_id);
1570
 
1528
 
1571
            if($record->user_id == $currentUser->id) {
1529
            if ($record->user_id == $currentUser->id) {
1572
                $link_delete = $this->url()->fromRoute('feed/comment/delete',['id' => $feed->uuid, 'comment' => $record->uuid]);
1530
                $link_delete = $this->url()->fromRoute('feed/comment/delete', ['id' => $feed->uuid, 'comment' => $record->uuid]);
1573
            } else {
1531
            } else {
1574
                $link_delete = '';
1532
                $link_delete = '';
1575
            }
1533
            }
1576
            
1534
 
1577
            array_push($comments, [
1535
            array_push($comments, [
1578
                'unique' => uniqid(),
1536
                'unique' => uniqid(),
1579
                'user_url' => $this->url()->fromRoute('profile/view', ['id' => $user->uuid]),
1537
                'user_url' => $this->url()->fromRoute('profile/view', ['id' => $user->uuid]),
1580
                'user_name' => $user->first_name . ' ' . $user->last_name,
1538
                'user_name' => $user->first_name . ' ' . $user->last_name,
1581
                'user_image' => $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image ]),
1539
                'user_image' => $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]),
1582
                'time_elapsed' => Functions::timeAgo($record->added_on, $now),
1540
                'time_elapsed' => Functions::timeAgo($record->added_on, $now),
1583
                'comment' => $record->comment,
1541
                'comment' => $record->comment,
1584
                'link_delete' => $link_delete
1542
                'link_delete' => $link_delete
1585
            ]);
1543
            ]);
1586
        }
1544
        }
1587
        $item['comment_add_url'] = $this->url()->fromRoute('feed/comment', ['id' => $feed->uuid]);
1545
        $item['comment_add_url'] = $this->url()->fromRoute('feed/comment', ['id' => $feed->uuid]);
1588
        $item['comments'] = $comments;
1546
        $item['comments'] = $comments;
1589
        
1547
 
1590
        return $item;
1548
        return $item;
1591
    }
1549
    }
1592
    
1550
 
1593
    /**
1551
    /**
1594
     *
1552
     *
1595
     * @param int $comment_id
1553
     * @param int $comment_id
1596
     * @return array
1554
     * @return array
1597
     */
1555
     */
1598
    private function renderComment($comment_id, $now)
1556
    private function renderComment($comment_id, $now)
1599
    {
1557
    {
1600
        $item = [];
1558
        $item = [];
1601
        
1559
 
1602
        $commentMapper = CommentMapper::getInstance($this->adapter);
1560
        $commentMapper = CommentMapper::getInstance($this->adapter);
1603
        $record = $commentMapper->fetchOne($comment_id);
1561
        $record = $commentMapper->fetchOne($comment_id);
1604
        
1562
 
1605
        $feedMapper = FeedMapper::getInstance($this->adapter);
1563
        $feedMapper = FeedMapper::getInstance($this->adapter);
1606
        $feed = $feedMapper->fetchOne($record->feed_id);
1564
        $feed = $feedMapper->fetchOne($record->feed_id);
1607
        
1565
 
1608
        if($record) {
1566
        if ($record) {
1609
            $userMapper = UserMapper::getInstance($this->adapter);
1567
            $userMapper = UserMapper::getInstance($this->adapter);
1610
            
1568
 
1611
            $user = $userMapper->fetchOne($record->user_id);
1569
            $user = $userMapper->fetchOne($record->user_id);
1612
            
1570
 
1613
            $item['unique'] = uniqid();
1571
            $item['unique'] = uniqid();
1614
            $item['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image ]);
1572
            $item['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]);
1615
            $item['user_url'] = $this->url()->fromRoute('profile', ['id' => $user->uuid]);
1573
            $item['user_url'] = $this->url()->fromRoute('profile', ['id' => $user->uuid]);
1616
            $item['user_name'] = $user->first_name . ' ' . $user->last_name;
1574
            $item['user_name'] = $user->first_name . ' ' . $user->last_name;
1617
            $item['time_elapsed'] = Functions::timeAgo($record->added_on, $now);
1575
            $item['time_elapsed'] = Functions::timeAgo($record->added_on, $now);
1618
            $item['comment'] = $record->comment;
1576
            $item['comment'] = $record->comment;
1619
            $item['link_delete'] = $this->url()->fromRoute('feed/comment/delete',['id' => $feed->uuid, 'comment' => $record->uuid ]);
1577
            $item['link_delete'] = $this->url()->fromRoute('feed/comment/delete', ['id' => $feed->uuid, 'comment' => $record->uuid]);
1620
        }
1578
        }
1621
        return $item;
1579
        return $item;
1622
    }
1580
    }
1623
    
1581
 
1624
    /**
1582
    /**
1625
     * 
1583
     * 
1626
     * @param string $path
1584
     * @param string $path
1627
     * @return boolean
1585
     * @return boolean
1628
     */
1586
     */
1629
    private function deletePath($path)
1587
    private function deletePath($path)
1630
    {
1588
    {
1631
        try {
1589
        try {
1632
            if (is_dir($path)){
1590
            if (is_dir($path)) {
1633
                if ($dh = opendir($path)) {
-
 
1634
                    while (($file = readdir($dh)) !== false)
1591
                if ($dh = opendir($path)) {
1635
                    {
1592
                    while (($file = readdir($dh)) !== false) {
1636
                        if($file == '.' || $file == '..') {
1593
                        if ($file == '.' || $file == '..') {
1637
                            continue;
1594
                            continue;
1638
                        }
1595
                        }
1639
                        unlink($path . DIRECTORY_SEPARATOR . $file);
1596
                        unlink($path . DIRECTORY_SEPARATOR . $file);
1640
                    }
1597
                    }
1641
                    closedir($dh);
1598
                    closedir($dh);
1642
                }
1599
                }
1643
                
1600
 
1644
                rmdir($path);
1601
                rmdir($path);
1645
            }
-
 
1646
            return true;
1602
            }
1647
        }
-
 
1648
        catch (\Throwable $e)
1603
            return true;
1649
        {
1604
        } catch (\Throwable $e) {
1650
            error_log($e->getTraceAsString());
1605
            error_log($e->getTraceAsString());
1651
            return false;
1606
            return false;
1652
        }
1607
        }
1653
    }
1608
    }
1654
    
1609
 
1655
    
1610
 
1656
    /**
1611
    /**
1657
     * 
1612
     * 
1658
     * @param Feed $feed
1613
     * @param Feed $feed
1659
     * @return array
1614
     * @return array
1660
     */
1615
     */
1661
    private function deleteFeed($feed) 
1616
    private function deleteFeed($feed)
1662
    {
1617
    {
1663
        $feedMapper = FeedMapper::getInstance($this->adapter);
1618
        $feedMapper = FeedMapper::getInstance($this->adapter);
1664
        $feed->status = Feed::STATUS_DELETED;
1619
        $feed->status = Feed::STATUS_DELETED;
1665
        if($feedMapper->update($feed)) {
1620
        if ($feedMapper->update($feed)) {
1666
            $response = [
1621
            $response = [
1667
                'success' => true,
1622
                'success' => true,
1668
                'data' => 'LABEL_FEED_WAS_DELETED'
-
 
1669
            ];
1623
                'data' => 'LABEL_FEED_WAS_DELETED'
1670
            
1624
            ];
1671
        } else {
1625
        } else {
1672
            $response = [
1626
            $response = [
1673
                'success' => false,
1627
                'success' => false,
1674
                'data' => $feedMapper->getError()
1628
                'data' => $feedMapper->getError()
1675
            ];
1629
            ];
1676
        }
1630
        }
1677
        
1631
 
1678
        
1632
 
1679
        /*$commentMapper = CommentMapper::getInstance($this->adapter);
1633
        /*$commentMapper = CommentMapper::getInstance($this->adapter);
1680
        if($commentMapper->deleteAllByFeedId($feed->id)) {
1634
        if($commentMapper->deleteAllByFeedId($feed->id)) {
1681
            if($feedMapper->delete($feed->id)) {
1635
            if($feedMapper->delete($feed->id)) {
Línea 1700... Línea 1654...
1700
                'success' => false,
1654
                'success' => false,
1701
                'data' => $commentMapper->getError()
1655
                'data' => $commentMapper->getError()
1702
            ];
1656
            ];
Línea 1703... Línea 1657...
1703
            
1657
            
1704
        }*/
1658
        }*/
1705
        
1659
 
1706
        return $response;
1660
        return $response;
1707
    }
-
 
1708
    
-
 
1709
 
1661
    }