Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 5517 Rev 5518
Línea 1030... Línea 1030...
1030
        $now = $utilMapper->getDatebaseNow();
1030
        $now = $utilMapper->getDatebaseNow();
Línea 1031... Línea 1031...
1031
 
1031
 
1032
        $currentUserPlugin = $this->plugin('currentUserPlugin');
1032
        $currentUserPlugin = $this->plugin('currentUserPlugin');
Línea 1033... Línea -...
1033
        $currentUser = $currentUserPlugin->getUser();
-
 
Línea -... Línea 1033...
-
 
1033
        $currentUser = $currentUserPlugin->getUser();
1034
 
1034
 
1035
        $type = $this->params()->fromRoute('type');
1035
 
1036
 
1036
        $type   = $this->params()->fromRoute('type');
1037
        if ($type == 'user') {
1037
        if ($type == 'user') {
1038
            $id = $currentUser->id;
1038
            $id = $currentUser->id;
Línea -... Línea 1039...
-
 
1039
        } else {
-
 
1040
            $id     = $this->params()->fromRoute('id');
-
 
1041
        }
-
 
1042
 
-
 
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
 
1039
        } else {
1059
        $request = $this->getRequest();
1040
            $id = $this->params()->fromRoute('id');
1060
        if ($request->isGet()) {
1041
        }
1061
 
1042
 
1062
            $page = (int) $this->params()->fromQuery('page');
1043
        if ($type == 'user') {
1063
            if ($type == 'user') {
1044
            $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1064
                $connectionMapper = ConnectionMapper::getInstance($this->adapter);
1045
            $records = $connectionMapper->fetchAllConnectionsByUser($id);
1065
                $records = $connectionMapper->fetchAllConnectionsByUser($id);
-
 
1066
                $connectionIds = [0];
-
 
1067
                foreach ($records as $record) {
-
 
1068
                    if ($currentUser->id == $record->request_from) {
-
 
1069
                        array_push($connectionIds, $record->request_to);
-
 
1070
                    } else {
-
 
1071
                        array_push($connectionIds, $record->request_from);
-
 
1072
                    }
-
 
1073
                }
-
 
1074
                array_push($connectionIds, 1);
-
 
1075
 
-
 
1076
                $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
-
 
1077
                $records = $companyFollowerMapper->fetchAllByFollowerId($currentUser->id);
-
 
1078
 
-
 
1079
                $companyIds = [0];
-
 
1080
                foreach ($records as $record) {
-
 
1081
                    if (!in_array($record->company_id, $companyIds)) {
-
 
1082
                        array_push($companyIds, $record->company_id);
-
 
1083
                    }
-
 
1084
                }
-
 
1085
 
-
 
1086
                $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
1087
                $companyUsers = $companyUserMapper->fetchAllByUserId($currentUser->id);
-
 
1088
 
-
 
1089
                foreach ($companyUsers as $companyUser) {
-
 
1090
                    if ($companyUser->status == CompanyUser::STATUS_ACCEPTED) {
-
 
1091
                        if (!in_array($companyUser->company_id, $companyIds)) {
-
 
1092
                            array_push($companyIds, $companyUser->company_id);
-
 
1093
                        }
-
 
1094
                    }
-
 
1095
                }
-
 
1096
 
-
 
1097
 
-
 
1098
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1099
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1100
                $select->columns(['id']);
-
 
1101
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1102
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED)
-
 
1103
                    ->AND->NEST
-
 
1104
                    ->OR->NEST->equalTo('user_id', $id)->and->equalTo('type', Feed::TYPE_UPDATE)->UNNEST
-
 
1105
                    ->OR->NEST->and->equalTo('type', Feed::TYPE_UPDATE)->and->equalTo('shared_with', Feed::SHARE_WITH_PUBLIC)->UNNEST
-
 
1106
                    ->OR->NEST->in('user_id', $connectionIds)->and->equalTo('type', Feed::TYPE_UPDATE)->and->equalTo('shared_with', Feed::SHARE_WITH_CONNECTIONS)->UNNEST
-
 
1107
                    ->OR->NEST->or->in('company_id', $companyIds)->and->equalTo('type', Feed::TYPE_COMPANY)->UNNEST
-
 
1108
                    ->UNNEST;
-
 
1109
                $select->order('added_on desc');
-
 
1110
            }
-
 
1111
            if ($type == 'company') {
-
 
1112
                $companyMapper = CompanyMapper::getInstance($this->adapter);
1046
            $connectionIds = [0];
1113
                $company = $companyMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
1114
 
-
 
1115
                if (!$company || $company->status != Company::STATUS_ACTIVE) {
-
 
1116
                    $id = 0;
-
 
1117
                } else {
-
 
1118
                    $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
-
 
1119
                    $companyFollower = $companyFollowerMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
1120
                    if ($companyFollower) {
-
 
1121
                        $id = $company->id;
-
 
1122
                    } else {
-
 
1123
 
-
 
1124
                        $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
-
 
1125
                        $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $currentUser->id);
-
 
1126
 
-
 
1127
                        if (!$companyUser || $companyUser->status != CompanyUser::STATUS_ACCEPTED) {
-
 
1128
                            $id = 0;
-
 
1129
                        } else {
-
 
1130
                            $id = $company->id;
-
 
1131
                        }
-
 
1132
                    }
-
 
1133
                }
-
 
1134
 
-
 
1135
 
-
 
1136
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1137
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1138
                $select->columns(['id']);
-
 
1139
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1140
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
-
 
1141
                $select->where->equalTo('company_id', $id);
-
 
1142
                $select->where->and->equalTo('type', Feed::TYPE_COMPANY);
-
 
1143
                $select->order('added_on desc');
-
 
1144
            }
-
 
1145
            if ($type == 'group') {
-
 
1146
                $groupMapper = GroupMapper::getInstance($this->adapter);
-
 
1147
                $group = $groupMapper->fetchOneByUuidAndNetworkId($id, $currentUser->network_id);
-
 
1148
 
-
 
1149
                $id = 0;
-
 
1150
 
-
 
1151
                if ($group && $group->status == Group::STATUS_ACTIVE) {
-
 
1152
                    $groupMemberMapper = GroupMemberMapper::getInstance($this->adapter);
-
 
1153
                    $groupMember = $groupMemberMapper->fetchOneByGroupIdAndUserId($group->id, $currentUser->id);
-
 
1154
                    if ($groupMember) {
-
 
1155
 
-
 
1156
 
-
 
1157
                        if (
1047
            foreach ($records as $record) {
1158
                            $groupMember->status == GroupMember::STATUS_ACCEPTED ||
-
 
1159
                            $groupMember->status == GroupMember::STATUS_AUTO_JOIN
-
 
1160
                        ) {
1048
                if ($currentUser->id == $record->request_from) {
1161
 
-
 
1162
                            $id =  $groupMember->group_id;
-
 
1163
                        }
-
 
1164
                    }
-
 
1165
                }
-
 
1166
 
-
 
1167
                $queryMapper = QueryMapper::getInstance($this->adapter);
-
 
1168
                $select = $queryMapper->getSql()->select(FeedMapper::_TABLE);
-
 
1169
                $select->columns(['id']);
-
 
1170
                $select->where->equalTo('network_id', $currentUser->network_id);
-
 
1171
                $select->where->equalTo('status', Feed::STATUS_PUBLISHED);
-
 
1172
                $select->where->equalTo('group_id', $id);
-
 
1173
                $select->where->and->equalTo('type', Feed::TYPE_GROUP);
-
 
1174
                $select->order('added_on desc');
-
 
1175
            }
-
 
1176
 
-
 
1177
            $dbSelect = new DbSelect($select, $this->adapter);
-
 
1178
            $paginator = new Paginator($dbSelect);
-
 
1179
            $paginator->setCurrentPageNumber($page ? $page : 1);
-
 
1180
            $paginator->setItemCountPerPage(10);
-
 
1181
 
-
 
1182
            $items = [];
-
 
1183
 
-
 
1184
 
-
 
1185
            if ($feedHighlighted) {
-
 
1186
 
-
 
1187
 
-
 
1188
                $items[] = $this->renderFeed($feedHighlighted, $now, $feedHighlighted);
-
 
1189
            }
1049
                    array_push($connectionIds, $record->request_to);
1190
 
-
 
1191
            $feeds = $paginator->getCurrentItems();
-
 
1192
            foreach ($feeds as $feed) {
-
 
1193
                $items[] = $this->renderFeed($feed->id, $now, $feedHighlighted);
-
 
1194
            }
-
 
1195
 
-
 
1196
            $response = [
-
 
1197
                'success' => true,
-
 
1198
                'data' => [
-
 
1199
                    'total' => [
-
 
1200
                        'count' => $paginator->getTotalItemCount(),
-
 
1201
                        'pages' => $paginator->getPages()->pageCount,
-
 
1202
                    ],
-
 
1203
                    'current' => [
-
 
1204
                        'items'    => $items,
-
 
1205
                        'page'     => $paginator->getCurrentPageNumber(),
-
 
1206
                        'count'    => $paginator->getCurrentItemCount(),
-
 
1207
                    ]
-
 
1208
                ]
-
 
1209
            ];
-
 
1210
 
-
 
1211
 
-
 
1212
 
-
 
1213
            /*
-
 
1214
            if($feedHighlighted) {
-
 
1215
                
-
 
1216
 
-
 
1217
                $items[] = $this->renderFeed($feedHighlighted, $now, $feedHighlighted);
-
 
1218
                
-
 
1219
                $response = [
-
 
1220
                    'success' => true,
-
 
1221
                    'data' => [
-
 
1222
                        'total' => [
-
 
1223
                            'count' => 1,
-
 
1224
                            'pages' => 1,
-
 
1225
                        ],
-
 
1226
                        'current' => [
-
 
1227
                            'items'    => $items,
-
 
1228
                            'page'     => 1,
-
 
1229
                            'count'    => 1,
-
 
1230
                        ]
-
 
1231
                    ]
-
 
1232
                ];
-
 
1233
            } else {
-
 
1234
            
-
 
1235
            
-
 
1236
            
-
 
1237
                $feeds = $paginator->getCurrentItems();
-
 
1238
                foreach($feeds as $feed) 
-
 
1239
                {
-
 
1240
                    $items[] = $this->renderFeed($feed->id, $now, $feedHighlighted);
-
 
1241
                }
-
 
1242
                
-
 
1243
                $response = [
-
 
1244
                    'success' => true,
-
 
1245
                    'data' => [
-
 
1246
                        'total' => [
-
 
1247
                            'count' => $paginator->getTotalItemCount(),
-
 
1248
                            'pages' => $paginator->getPages()->pageCount,
-
 
1249
                        ],
-
 
1250
                        'current' => [
-
 
1251
                            'items'    => $items,
-
 
1252
                            'page'     => $paginator->getCurrentPageNumber(),
-
 
1253
                            'count'    => $paginator->getCurrentItemCount(),
-
 
1254
                        ]
-
 
1255
                    ]
-
 
1256
                ];
-
 
1257
            }*/
-
 
1258
 
-
 
1259
 
-
 
1260
 
-
 
1261
            return new JsonModel($response);
-
 
1262
        }
-
 
1263
 
-
 
1264
        $response = [
-
 
1265
            'success' => false,
-
 
1266
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
1050
                } else {
1267
        ];
Línea 1051... Línea 1268...
1051
                    array_push($connectionIds, $record->request_from);
1268
 
1052
                }
1269
 
1053
            }
1270
        return new JsonModel($response);