Proyectos de Subversion LeadersLinked - Services

Rev

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

Rev 1 Rev 60
Línea 263... Línea 263...
263
                $updated_on = $dt->format('d/m/Y H:i a');
263
                $updated_on = $dt->format('d/m/Y H:i a');
Línea 264... Línea 264...
264
                
264
                
265
                $item = [
265
                $item = [
266
                    'uuid' => $record->uuid,
266
                    'uuid' => $record->uuid,
267
                    'user_name' => trim($user->first_name . ' ' . $user->last_name),
267
                    'user_name' => trim($user->first_name . ' ' . $user->last_name),
268
                    'user_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),
268
                    'user_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image],['force_canonical' => true]),
269
                    'title' => $record->title,
269
                    'title' => $record->title,
270
                    'description' => $description,
270
                    'description' => $description,
271
                    'categories' => $bags_categories,
271
                    'categories' => $bags_categories,
272
                    'views' => intval($myCoachQuestionViewMapper->fetchCountByQuestionId($record->id), 10),
272
                    'views' => intval($myCoachQuestionViewMapper->fetchCountByQuestionId($record->id), 10),
Línea 707... Línea 707...
707
            return new JsonModel([
707
            return new JsonModel([
708
                'success' => true, 
708
                'success' => true, 
709
                'data' => [
709
                'data' => [
710
                    'uuid' => $myCoachQuestion->uuid,
710
                    'uuid' => $myCoachQuestion->uuid,
711
                    'user_name' => trim($user->first_name . ' ' . $user->last_name),
711
                    'user_name' => trim($user->first_name . ' ' . $user->last_name),
712
                    'user_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),
712
                    'user_image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image],['force_canonical' => true]),
713
                    'title' => $myCoachQuestion->title,
713
                    'title' => $myCoachQuestion->title,
714
                    'description' => $myCoachQuestion->description,
714
                    'description' => $myCoachQuestion->description,
715
                    'categories' => $bags_categories,
715
                    'categories' => $bags_categories,
716
                    'views' => intval($myCoachQuestionViewMapper->fetchCountByQuestionId($myCoachQuestion->id) , 10),
716
                    'views' => intval($myCoachQuestionViewMapper->fetchCountByQuestionId($myCoachQuestion->id) , 10),
717
                    'answers' => intval($myCoachAnswerMapper->fetchCountByMyCoachQuestionId($myCoachQuestion->id) , 10),
717
                    'answers' => intval($myCoachAnswerMapper->fetchCountByMyCoachQuestionId($myCoachQuestion->id) , 10),
Línea 1038... Línea 1038...
1038
            return new JsonModel($data);
1038
            return new JsonModel($data);
1039
        }
1039
        }
Línea 1040... Línea 1040...
1040
        
1040
        
1041
        
-
 
1042
    }
-
 
1043
    
-
 
1044
    /*
-
 
1045
    
-
 
1046
    public function deleteAction()
-
 
1047
    {
-
 
1048
    $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1049
    $currentUser    = $currentUserPlugin->getUser();
-
 
1050
    
-
 
1051
    
-
 
1052
    $request    = $this->getRequest();
-
 
1053
    $id         = $this->params()->fromRoute('id');
-
 
1054
    
-
 
1055
    
-
 
1056
    
-
 
1057
    $myCoachQuestionMapper = MyCoachQuestionMapper::getInstance($this->adapter);
-
 
1058
    $myCoachQuestion = $myCoachQuestionMapper->fetchOneByUuid($id);
-
 
1059
    if (!$myCoachQuestion) {
-
 
1060
    return new JsonModel([
-
 
1061
    'success'   => false,
-
 
1062
    'data'   => 'ERROR_RECORD_NOT_FOUND'
-
 
1063
    ]);
-
 
1064
    }
-
 
1065
    
-
 
1066
    $ok = false;
-
 
1067
    if(!$myCoachQuestion->answers) {
-
 
1068
    
-
 
1069
    if($currentUser->id == $myCoachQuestion->user_id) {
-
 
1070
    $ok = true;
-
 
1071
    } else {
-
 
1072
    $category_ids_with_edition = [];
-
 
1073
    
-
 
1074
    $myCoachCategoryUserMapper = MyCoachCategoryUserMapper::getInstance($this->adapter);
-
 
1075
    $records = $myCoachCategoryUser = $myCoachCategoryUserMapper->fetchAllByUserId($currentUser->id);
-
 
1076
    
-
 
1077
    foreach($records as $record)
-
 
1078
    {
-
 
1079
    array_push($category_ids_with_edition, $record->user_id);
-
 
1080
    }
-
 
1081
    
-
 
1082
    
-
 
1083
    
-
 
1084
    $myCoachQuestionCategoryMapper = MyCoachQuestionCategoryMapper::getInstance($this->adapter);
-
 
1085
    $records = $myCoachQuestionCategoryMapper->fetchAllByQuestionId($myCoachQuestion->id);
-
 
1086
    foreach($records as $record)
-
 
1087
    {
-
 
1088
    if (in_array($record->category_id, $category_ids_with_edition) && $myCoachCategoryUser->role == MyCoachCategoryUser::ROLE_EDITOR || $myCoachCategoryUser->role == MyCoachCategoryUser::ROLE_ADMINISTRATOR) {
-
 
1089
    $ok = true;
-
 
1090
    break;
-
 
1091
    }
-
 
1092
    }
-
 
1093
    }
-
 
1094
    }
-
 
1095
    
-
 
1096
    
-
 
1097
    if (!$ok) {
-
 
1098
    return new JsonModel([
-
 
1099
    'success'   => false,
-
 
1100
    'data'   => 'ERROR_KNOWLEDGE_AREA_YOU_DO_NOT_HAVE_PERMISSION'
-
 
1101
    ]);
-
 
1102
    }
-
 
1103
    
-
 
1104
    if ($request->isPost()) {
-
 
1105
    
-
 
1106
    $myCoachQuestionCategoryMapper = MyCoachQuestionCategoryMapper::getInstance($this->adapter);
-
 
1107
    $myCoachQuestionCategoryMapper->deleteAllByQuestionId($myCoachQuestion->id);
-
 
1108
    
-
 
1109
    $result =  $myCoachQuestionMapper->delete($myCoachQuestion);
-
 
1110
    if ($result) {
-
 
1111
    $data = [
-
 
1112
    'success' => true,
-
 
1113
    'data' => 'LABEL_RECORD_DELETED'
-
 
1114
    ];
-
 
1115
    } else {
-
 
1116
    
-
 
1117
    $data = [
-
 
1118
    'success'   => false,
-
 
1119
    'data'      => $myCoachQuestionMapper->getError()
-
 
1120
    ];
-
 
1121
    
-
 
1122
    return new JsonModel($data);
-
 
1123
    }
-
 
1124
    } else {
-
 
1125
    $data = [
-
 
1126
    'success' => false,
-
 
1127
    'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1128
    ];
-
 
1129
    
-
 
1130
    return new JsonModel($data);
-
 
1131
    }
-
 
1132
    
-
 
1133
    return new JsonModel($data);
-
 
1134
    }
-
 
1135
    
-
 
1136
    
-
 
1137
    public function editAction()
-
 
1138
    {
-
 
1139
    $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1140
    $currentUser    = $currentUserPlugin->getUser();
-
 
1141
    
-
 
1142
    $request    = $this->getRequest();
-
 
1143
    $id    = $this->params()->fromRoute('id');
-
 
1144
    
-
 
1145
    $myCoachQuestionMapper = MyCoachQuestionMapper::getInstance($this->adapter);
-
 
1146
    $myCoachQuestion = $myCoachQuestionMapper->fetchOneByUuid($id);
-
 
1147
    if (!$myCoachQuestion) {
-
 
1148
    return new JsonModel([
-
 
1149
    'success'   => false,
-
 
1150
    'data'   => 'ERROR_RECORD_NOT_FOUND'
-
 
1151
    ]);
-
 
1152
    }
-
 
1153
    
-
 
1154
    $myCoachQuestionCategoryMapper = MyCoachQuestionCategoryMapper::getInstance($this->adapter);
-
 
1155
    
-
 
1156
    $ok = false;
-
 
1157
    if(!$myCoachQuestion->answers) {
-
 
1158
    
-
 
1159
    if($currentUser->id == $myCoachQuestion->user_id) {
-
 
1160
    $ok = true;
-
 
1161
    } else {
-
 
1162
    $category_ids_with_edition = [];
-
 
1163
    
-
 
1164
    $myCoachCategoryUserMapper = MyCoachCategoryUserMapper::getInstance($this->adapter);
-
 
1165
    $records = $myCoachCategoryUser = $myCoachCategoryUserMapper->fetchAllByUserId($currentUser->id);
-
 
1166
    
-
 
1167
    foreach($records as $record)
-
 
1168
    {
-
 
1169
    array_push($category_ids_with_edition, $record->user_id);
-
 
1170
    }
-
 
1171
    
-
 
1172
    
-
 
1173
    $records = $myCoachQuestionCategoryMapper->fetchAllByQuestionId($myCoachQuestion->id);
-
 
1174
    foreach($records as $record)
-
 
1175
    {
-
 
1176
    if (in_array($record->category_id, $category_ids_with_edition) && $myCoachCategoryUser->role == MyCoachCategoryUser::ROLE_EDITOR || $myCoachCategoryUser->role == MyCoachCategoryUser::ROLE_ADMINISTRATOR) {
-
 
1177
    $ok = true;
-
 
1178
    break;
-
 
1179
    }
-
 
1180
    }
-
 
1181
    }
-
 
1182
    }
-
 
1183
    
-
 
1184
    
-
 
1185
    if (!$ok) {
-
 
1186
    return new JsonModel([
-
 
1187
    'success'   => false,
-
 
1188
    'data'   => 'ERROR_KNOWLEDGE_AREA_YOU_DO_NOT_HAVE_PERMISSION'
-
 
1189
    ]);
1041
        
1190
    }
-
 
1191
    
-
 
1192
    if (!$ok) {
-
 
1193
    return new JsonModel([
-
 
1194
    'success'   => false,
-
 
1195
    'data'   => 'ERROR_KNOWLEDGE_AREA_YOU_DO_NOT_HAVE_PERMISSION'
-
 
1196
    ]);
-
 
1197
    }
-
 
1198
    
-
 
1199
    if ($request->isGet()) {
-
 
1200
    
-
 
1201
    
-
 
1202
    $myCoachCategoryMapper = MyCoachCategoryMapper::getInstance($this->adapter);
-
 
1203
    
-
 
1204
    
-
 
1205
    
-
 
1206
    $category_ids = [];
-
 
1207
    
-
 
1208
    
-
 
1209
    
-
 
1210
    $records = $myCoachQuestionCategoryMapper->fetchAllByQuestionId($myCoachQuestion->id);
-
 
1211
    foreach($records as $record)
-
 
1212
    {
-
 
1213
    $myCoachCategory = $myCoachCategoryMapper->fetchOne($record->category_id);
-
 
1214
    if($myCoachCategory) {
-
 
1215
    array_push($category_ids,$myCoachCategory->uuid);
-
 
1216
    }
-
 
1217
    }
-
 
1218
    
-
 
1219
    
-
 
1220
    
-
 
1221
    $data = [
-
 
1222
    'success' => true,
-
 
1223
    'data' => [
-
 
1224
    'category_id' => $category_ids,
-
 
1225
    'title' => $myCoachQuestion->title,
-
 
1226
    'description' => $myCoachQuestion->description,
-
 
1227
    ]
-
 
1228
    ];
-
 
1229
    
-
 
1230
    return new JsonModel($data);
-
 
1231
    } else if ($request->isPost()) {
-
 
1232
    $category_with_edition_ids = [];
-
 
1233
    $category_ids = [];
-
 
1234
    
-
 
1235
    
-
 
1236
    $categories = [];
-
 
1237
    
-
 
1238
    
-
 
1239
    $myCoachCategoryUserMapper = MyCoachCategoryUserMapper::getInstance($this->adapter);
-
 
1240
    $records =  $myCoachCategoryUserMapper->fetchAllByUserId($currentUser->id);
-
 
1241
    foreach ($records as $record) {
-
 
1242
    if ($record->role == MyCoachCategoryUser::ROLE_ADMINISTRATOR || $record->role == MyCoachCategoryUser::ROLE_USER) {
-
 
1243
    
-
 
1244
    array_push($category_with_edition_ids, $record->category_id);
-
 
1245
    }
-
 
1246
    
-
 
1247
    array_push($category_ids, $record->category_id);
-
 
1248
    }
-
 
1249
    
-
 
1250
    $myCoachCategoryMapper = MyCoachCategoryMapper::getInstance($this->adapter);
-
 
1251
    
-
 
1252
    if ($category_ids) {
-
 
1253
    $records =  $myCoachCategoryMapper->fetchAllByIds($category_ids);
-
 
1254
    foreach ($records as $record) {
-
 
1255
    if ($record->status == MyCoachCategory::STATUS_ACTIVE) {
-
 
1256
    
-
 
1257
    $categories[$record->id] = [
-
 
1258
    'uuid' => $record->uuid,
-
 
1259
    'name' => $record->name,
-
 
1260
    ];
-
 
1261
    }
-
 
1262
    }
-
 
1263
    }
-
 
1264
    
-
 
1265
    
-
 
1266
    
-
 
1267
    $categories = array_values($categories);
-
 
1268
    usort($categories, function ($a, $b) {
-
 
1269
    return $a['name'] <=> $b['name'];
-
 
1270
    });
-
 
1271
    
-
 
1272
    $categories_question_available = [];
-
 
1273
    foreach($categories as $cartegory)
-
 
1274
    {
-
 
1275
    $categories_question_available[ $cartegory['uuid'] ] = $cartegory['name'];
-
 
1276
    }
-
 
1277
    
-
 
1278
    $dataPost = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
-
 
1279
    $form = new MyCoachQuestionForm($categories_question_available);
-
 
1280
    $form->setData($dataPost);
-
 
1281
    
-
 
1282
    if ($form->isValid()) {
-
 
1283
    $dataPost = (array) $form->getData();
-
 
1284
    
-
 
1285
    
-
 
1286
    
-
 
1287
    $myCoachQuestion->title = $dataPost['title'];
-
 
1288
    $myCoachQuestion->description = $dataPost['description'];
-
 
1289
    
-
 
1290
    
-
 
1291
    if ($myCoachQuestionMapper->update($myCoachQuestion)) {
-
 
1292
    
-
 
1293
    
-
 
1294
    $myCoachCategoryMapper = MyCoachCategoryMapper::getInstance($this->adapter);
-
 
1295
    
-
 
1296
    $myCoachQuestionCategoryMapper = MyCoachQuestionCategoryMapper::getInstance($this->adapter);
-
 
1297
    $myCoachQuestionCategoryMapper->deleteAllByQuestionId($myCoachQuestion->id);
-
 
1298
    
-
 
1299
    $category_ids = $dataPost['category_id'];
-
 
1300
    foreach($category_ids as $category_id)
-
 
1301
    {
-
 
1302
    $myCoachCategory = $myCoachCategoryMapper->fetchOneByUuid($category_id);
-
 
1303
    if($myCoachCategory) {
-
 
1304
    $myCoachQuestionCategory = new MyCoachQuestionCategory();
-
 
1305
    $myCoachQuestionCategory->category_id = $myCoachCategory->id;
-
 
1306
    $myCoachQuestionCategory->question_id = $myCoachQuestion->id;
-
 
1307
    
-
 
1308
    $myCoachQuestionCategoryMapper->insert($myCoachQuestionCategory);
-
 
1309
    }
-
 
1310
    }
-
 
1311
    
-
 
1312
    
-
 
1313
    $this->logger->info('Se edito la pregunta ' . $myCoachQuestion->title, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
1314
    
-
 
1315
    $data = [
-
 
1316
    'success'   => true,
-
 
1317
    'data'   => 'LABEL_RECORD_UPDATED'
-
 
1318
    ];
-
 
1319
    } else {
-
 
1320
    $data = [
-
 
1321
    'success'   => false,
-
 
1322
    'data'      => $myCoachQuestionMapper->getError()
-
 
1323
    ];
-
 
1324
    }
-
 
1325
    
-
 
1326
    return new JsonModel($data);
-
 
1327
    } else {
-
 
1328
    $messages = [];
-
 
1329
    $form_messages = (array) $form->getMessages();
-
 
1330
    foreach ($form_messages  as $fieldname => $field_messages) {
-
 
1331
    
-
 
1332
    $messages[$fieldname] = array_values($field_messages);
-
 
1333
    }
-
 
1334
    
-
 
1335
    return new JsonModel([
-
 
1336
    'success'   => false,
-
 
1337
    'data'   => $messages
-
 
1338
    ]);
-
 
1339
    }
-
 
1340
    } else {
-
 
1341
    $data = [
-
 
1342
    'success' => false,
-
 
1343
    'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1344
    ];
-
 
1345
    
-
 
1346
    return new JsonModel($data);
-
 
1347
    }
-
 
1348
    
-
 
1349
    return new JsonModel($data);
-
 
1350
    }
-
 
1351
    
-
 
1352
    
-
 
1353
    public function viewAction()
-
 
1354
    {
-
 
1355
    $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1356
    $currentUser = $currentUserPlugin->getUser();
-
 
1357
    
-
 
1358
    $currentNetworkPlugin = $this->plugin('currentNetworkPlugin');
-
 
1359
    $currentNetwork = $currentNetworkPlugin->getNetwork();
-
 
1360
    
-
 
1361
    $request    = $this->getRequest();
-
 
1362
    $id    = $this->params()->fromRoute('id');
-
 
1363
    
-
 
1364
    $myCoachQuestionMapper = MyCoachQuestionMapper::getInstance($this->adapter);
-
 
1365
    $myCoachQuestion = $myCoachQuestionMapper->fetchOneByUuid($id);
-
 
1366
    if (!$myCoachQuestion) {
-
 
1367
    return new JsonModel([
-
 
1368
    'success'   => false,
-
 
1369
    'data'   => 'ERROR_RECORD_NOT_FOUND'
-
 
1370
    ]);
-
 
1371
    }
-
 
1372
    
-
 
1373
    
-
 
1374
    $request = $this->getRequest();
-
 
1375
    if ($request->isGet()) {
-
 
1376
    
-
 
1377
    
-
 
1378
    
-
 
1379
    $category_with_edition_ids = [];
-
 
1380
    $category_ids = [];
-
 
1381
    $categories = [];
-
 
1382
    
-
 
1383
    
-
 
1384
    $myCoachCategoryUserMapper = MyCoachCategoryUserMapper::getInstance($this->adapter);
-
 
1385
    $records =  $myCoachCategoryUserMapper->fetchAllByUserId($currentUser->id);
-
 
1386
    foreach ($records as $record) {
-
 
1387
    if ($record->role == MyCoachCategoryUser::ROLE_ADMINISTRATOR || $record->role == MyCoachCategoryUser::ROLE_USER) {
-
 
1388
    
-
 
1389
    array_push($category_with_edition_ids, $record->category_id);
-
 
1390
    }
-
 
1391
    
-
 
1392
    array_push($category_ids, $record->category_id);
-
 
1393
    }
-
 
1394
    
-
 
1395
    $myCoachCategoryMapper = MyCoachCategoryMapper::getInstance($this->adapter);
-
 
1396
    
-
 
1397
    
-
 
1398
    
-
 
1399
    if ($category_ids) {
-
 
1400
    $records =  $myCoachCategoryMapper->fetchAllByIds($category_ids);
-
 
1401
    foreach ($records as $record) {
-
 
1402
    $categories[$record->id] = [
-
 
1403
    'uuid' => $record->uuid,
-
 
1404
    'name' => $record->name,
-
 
1405
    ];
-
 
1406
    }
-
 
1407
    }
-
 
1408
    
-
 
1409
    $records =  $myCoachCategoryMapper->fetchAllPublicByNetworkId($currentNetwork->id);
-
 
1410
    foreach ($records as $record) {
-
 
1411
    if (!isset($categories[$record->id])) {
-
 
1412
    
-
 
1413
    $categories[$record->id] = [
-
 
1414
    'uuid' => $record->uuid,
-
 
1415
    'name' => $record->name,
-
 
1416
    ];
-
 
1417
    }
-
 
1418
    }
-
 
1419
    
-
 
1420
    
-
 
1421
    
-
 
1422
    
-
 
1423
    
-
 
1424
    $categories = array_values($categories);
-
 
1425
    usort($categories, function ($a, $b) {
-
 
1426
    return $a['name'] <=> $b['name'];
-
 
1427
    });
-
 
1428
    
-
 
1429
    
-
 
1430
    $access = $myCoachQuestion->user_id == $currentUser->id;
-
 
1431
    
-
 
1432
    $allowDelete = false;
-
 
1433
    $allowAnswer = false;
-
 
1434
    
-
 
1435
    $bags_categories = [];
-
 
1436
    $myCoachQuestionCategoryMapper = MyCoachQuestionCategoryMapper::getInstance($this->adapter);
-
 
1437
    
-
 
1438
    $questionCategories = $myCoachQuestionCategoryMapper->fetchAllByQuestionId($myCoachQuestion->id);
-
 
1439
    foreach($questionCategories as $questionCategory)
-
 
1440
    {
-
 
1441
    
-
 
1442
    if(in_array($questionCategory->category_id, $categories)) {
-
 
1443
    $access = true;
-
 
1444
    }
-
 
1445
    
-
 
1446
    
-
 
1447
    if(in_array($questionCategory->category_id, $category_with_edition_ids)) {
-
 
1448
    
-
 
1449
    $allowDelete = true;
-
 
1450
    $allowAnswer = true;
-
 
1451
    }
-
 
1452
    
-
 
1453
    if (!isset($categories[$questionCategory->category_id])) {
-
 
1454
    $category = $myCoachCategoryMapper->fetchOne($questionCategory->category_id);
-
 
1455
    if ($category) {
-
 
1456
    $categories[$category->id] = [
-
 
1457
    'uuid' =>  $category->uuid,
-
 
1458
    'name' =>  $category->name,
-
 
1459
    ];
-
 
1460
    }
-
 
1461
    }
-
 
1462
    
-
 
1463
    array_push($bags_categories,['category' => $categories[ $questionCategory->category_id ]['name'] ]);
-
 
1464
    }
-
 
1465
    
-
 
1466
    $users = [];
-
 
1467
    $userMapper = UserMapper::getInstance($this->adapter);
-
 
1468
    if(isset($users[$myCoachQuestion->user_id])) {
-
 
1469
    $user = $users[$myCoachQuestion->user_id];
-
 
1470
    } else {
-
 
1471
    $user = $userMapper->fetchOne( $myCoachQuestion->user_id );
-
 
1472
    $users[ $myCoachQuestion->user_id ] = $user;
-
 
1473
    }
-
 
1474
    
-
 
1475
    
-
 
1476
    
-
 
1477
    $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->added_on);
-
 
1478
    $added_on = $dt->format('d/m/Y H:i a');
-
 
1479
    
-
 
1480
    $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->updated_on);
-
 
1481
    $updated_on = $dt->format('d/m/Y H:i a');
-
 
1482
    
-
 
1483
    
-
 
1484
    
-
 
1485
    $data = [
-
 
1486
    'user_name' => trim($user->first_name . ' ' . $user->last_name),
-
 
1487
    'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),
-
 
1488
    'title' => $myCoachQuestion->title,
-
 
1489
    'description' => $myCoachQuestion->description,
-
 
1490
    'categories' => $bags_categories,
-
 
1491
    'views' => $myCoachQuestion->views,
-
 
1492
    'answers' => $myCoachQuestion->answers,
-
 
1493
    'reactions' => $myCoachQuestion->reactions,
-
 
1494
    'added_on' => $added_on,
-
 
1495
    'updated_on' => $updated_on,
-
 
1496
    'answers' => [],
-
 
1497
    ];
-
 
1498
    
-
 
1499
    
-
 
1500
    
-
 
1501
    if($allowDelete || $myCoachQuestion->zuser_id == $currentUser->id) {
-
 
1502
    $data['link_delete'] = $this->url()->fromRoute('my-coach/questions/delete', ['id' => $myCoachQuestion->uuid]);
-
 
1503
    } else {
-
 
1504
    $data['ink_delete'] = '';
-
 
1505
    }
-
 
1506
    
-
 
1507
    
-
 
1508
    if ($allowAnswer) {
-
 
1509
    $data['link_answers'] = $this->url()->fromRoute('my-coach/questions/answers', ['id' => $myCoachQuestion->uuid]);
-
 
1510
    } else {
-
 
1511
    $data['link_answers'] = '';
-
 
1512
    }
-
 
1513
    
-
 
1514
    $myCoachAnswerMapper = MyCoachAnswerMapper::getInstance($this->adapter);
-
 
1515
    $records =  $myCoachAnswerMapper->fetchAllByQuestionId($myCoachQuestion->id);
-
 
1516
    foreach($records as $record)
-
 
1517
    {
-
 
1518
    
-
 
1519
    $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->added_on);
-
 
1520
    $added_on = $dt->format('d/m/Y H:i a');
-
 
1521
    
-
 
1522
    $dt = \DateTime::createFromFormat('Y-m-d H:i:s', $record->updated_on);
-
 
1523
    $updated_on = $dt->format('d/m/Y H:i a');
-
 
1524
    
-
 
1525
    if(isset($users[$record->user_id])) {
-
 
1526
    $user = $users[$record->user_id];
-
 
1527
    } else {
-
 
1528
    $user = $userMapper->fetchOne( $record->user_id );
-
 
1529
    $users[ $record->user_id ] = $user;
-
 
1530
    }
-
 
1531
    
-
 
1532
    array_push($data['answers'], [
-
 
1533
    'user_name' => trim($user->first_name . ' ' . $user->last_name),
-
 
1534
    'image' => $this->url()->fromRoute('storage', ['type' => 'user', 'code' => $user->uuid, 'filename' => $user->image]),
-
 
1535
    'text' => $record->text,
-
 
1536
    'added_on' => $added_on,
-
 
1537
    'updated_on' => $updated_on,
-
 
1538
    'link_delete' => $allowAnswer ? $this->url()->fromRoute('my-coach/questions/answer/delete', ['code' => $myCoachQuestion->uuid, 'answer' => $record->uuid]) : '',
-
 
1539
    ]);
-
 
1540
    
-
 
1541
    
-
 
1542
    
-
 
1543
    }
-
 
1544
    
-
 
1545
    
-
 
1546
    
-
 
1547
    
-
 
1548
    return new JsonModel([
-
 
1549
    'success' => true,
-
 
1550
    'data' => $data
-
 
1551
    ]);
-
 
1552
    
-
 
1553
    
-
 
1554
    } else {
-
 
1555
    return new JsonModel([
-
 
1556
    'success' => false,
-
 
1557
    'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1558
    ]);
-
 
1559
    }
-
 
1560
    
-
 
1561
    
-
 
1562
    return new JsonModel($data);
-
 
Línea 1563... Línea 1042...
1563
    }
1042
    }
1564
    */
1043
   
1565
    
1044
    
Línea 2018... Línea 1497...
2018
        
1497
        
2019
        $item = [
1498
        $item = [
2020
            'unique' => uniqid(),
1499
            'unique' => uniqid(),
2021
            'uuid' => $myCoachAnswer->uuid,
1500
            'uuid' => $myCoachAnswer->uuid,
2022
            'question_uuid' => $myCoachQuestion->uuid,
1501
            'question_uuid' => $myCoachQuestion->uuid,
2023
            'user_image' => $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]),
1502
            'user_image' => $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image],['force_canonical' => true]),
2024
            'user_url' => $this->url()->fromRoute('profile/view', ['id' => $user->uuid]),
1503
            'user_url' => $this->url()->fromRoute('profile/view', ['id' => $user->uuid]),
2025
            'user_name' => $user->first_name . ' ' . $user->last_name,
1504
            'user_name' => $user->first_name . ' ' . $user->last_name,
2026
            'time_elapsed' => Functions::timeAgo($myCoachAnswer->added_on, $now),
1505
            'time_elapsed' => Functions::timeAgo($myCoachAnswer->added_on, $now),
2027
            'text' => $myCoachAnswer->text, 
1506
            'text' => $myCoachAnswer->text, 
Línea 2060... Línea 1539...
2060
            
1539
            
Línea 2061... Línea 1540...
2061
            $user = $userMapper->fetchOne($record->user_id);
1540
            $user = $userMapper->fetchOne($record->user_id);
2062
            
1541
            
2063
            $item['unique'] = uniqid();
1542
            $item['unique'] = uniqid();
2064
            $item['answer_uuid'] = $myCoachAnswer->uuid;
1543
            $item['answer_uuid'] = $myCoachAnswer->uuid;
2065
            $item['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image]);
1544
            $item['user_image'] = $this->url()->fromRoute('storage', ['type' => 'user',  'code' => $user->uuid, 'filename' =>  $user->image],['force_canonical' => true]);
2066
            $item['user_url'] = $this->url()->fromRoute('profile/view', ['id' => $user->uuid]);
1545
            $item['user_url'] = $this->url()->fromRoute('profile/view', ['id' => $user->uuid]);
2067
            $item['user_name'] = $user->first_name . ' ' . $user->last_name;
1546
            $item['user_name'] = $user->first_name . ' ' . $user->last_name;
2068
            $item['time_elapsed'] = Functions::timeAgo($record->added_on, $now);
1547
            $item['time_elapsed'] = Functions::timeAgo($record->added_on, $now);