public function index() { $auth_token = \Request::header('authorization'); $user = \User::where('auth_token', '=', $auth_token)->first(); // obtener los permisos del usuario $idpermisos = \User::getPermisosPorUsuarioId($user->id)->get()->lists('idpermisos'); // obtener los eventos de acuerdo a los permisos del usuario $eventos = []; if (in_array(12, $idpermisos)) { // tiene el permiso "listar (todos los) eventos" $eventos = \Evento::all(); } elseif (in_array(15, $idpermisos)) { // tiene el permiso "mis eventos" $eventos = \Asistencia::getEventosPorUser($user->id)->get(); } $response = []; foreach ($eventos as $e) { // obtener los documentos del evento $docs = \DocumentosEvento::getDocumentosPorEvento($e->ideventos)->get(); foreach ($docs as $d) { // obtener hace cuantos dias se subio el documento $from = new \DateTime(); $from->setTimestamp(strtotime($d->created_at)); $to = new \DateTime('today'); $dias = $from->diff($to)->d; // obtener los usuarios asignados al documento (al evento) $users = []; $usuarios = \Asistencia::getUsersPorEvento($e->ideventos)->get(); foreach ($usuarios as $u) { $perfiles = \User::getPerfilesPorUsuario2($u->id)->get(); $perfiles_array = []; foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } // verificar si el usuario ha visto el documento $visto = \Visualizacion::getVisualizacionesPorUserPorEventoPorDocumento($u->id, $e->ideventos, $d->iddocumentos)->first(); $users[] = ['id' => $u->id, 'names' => $u->nombres, 'last_name' => $u->apellido_pat, 'username' => $u->num_documento, 'profiles' => $perfiles_array, 'seen' => $visto ? 1 : 0]; } $response[] = ['id' => $d->iddocumentos, 'name' => $d->titulo, 'url' => $d->ruta . $d->nombre_archivo, 'upload_date' => 'Hace ' . $dias . ' día' . ($dias != 1 ? 's' : '') . ', ' . date('h:i A', $from->getTimestamp()), 'size' => $d->peso . ' KB', 'users' => $users]; } } return \Response::json($response, 200); }
public function comment($attendance_children_id) { // validar si el id es de un registro existente $asistencia_ninho = \AsistenciaNinho::find($attendance_children_id); if (!$asistencia_ninho) { return Response::json(['error' => 'No existe un registro de asistencia con id = ' . $attendance_children_id], 200); } $rules = array('message' => 'required', 'face' => 'required'); $validator = \Validator::make(Input::all(), $rules); if ($validator->fails()) { return Response::json(['error' => 'Los parámetros message y face son obligatorios.'], 200); } // verificar si el usuario ya le comento al niño $auth_token = \Request::header('authorization'); $user = \User::where('auth_token', '=', $auth_token)->first(); $comentario = \Comentario::getComentarioPorUserPorNinhos($user->id, $attendance_children_id)->first(); if ($comentario) { $comentario->comentario = Input::get('message'); $comentario->calificacion = Input::get('face'); $comentario->save(); } else { $nuevo_comentario = new \Comentario(); $nuevo_comentario->comentario = Input::get('message'); $nuevo_comentario->calificacion = Input::get('face'); $nuevo_comentario->idusers = $user->id; $nuevo_comentario->idasistencia_ninhos = $attendance_children_id; $nuevo_comentario->save(); } // armar la respuesta // verificar si tiene permiso para leer todos los comentarios del niño $idpermisos = \User::getPermisosPorUsuarioId($user->id)->get()->lists('idpermisos'); if (!in_array(33, $idpermisos)) { return Response::json(['success' => 1], 200); } $n = \Ninho::find($asistencia_ninho->idninhos); // genero $genero = null; if ($n->genero == 'm' || $n->genero == 'M') { $genero = 0; } elseif ($n->genero == 'f' || $n->genero == 'F') { $genero = 1; } // edad $from = new \DateTime($n->fecha_nacimiento); $to = new \DateTime('today'); $edad = $from->diff($to)->y; // obtener todos los comentarios hechos al niño en todas las sesiones $lista_comentarios = []; $asistencias = \AsistenciaNinho::where('idninhos', '=', $n->idninhos)->get(); foreach ($asistencias as $a) { $comentarios = \Comentario::where('idasistencia_ninhos', '=', $a->idasistencia_ninhos)->get(); foreach ($comentarios as $c) { $autor = \User::searchUserById($c->idusers)->first(); $perfiles = \User::getPerfilesPorUsuario2($autor->id)->get(); $perfiles_array = []; foreach ($perfiles as $perfil) { $perfiles_array[] = ['id' => $perfil->idperfiles, 'name' => $perfil->nombre]; } $lista_comentarios[] = ['id' => $c->idcomentarios, 'session_id' => $a->ideventos, 'message' => $c->comentario, 'face' => (int) $c->calificacion, 'author' => ['id' => $autor->id, 'names' => $autor->nombres, 'last_name' => $autor->apellido_pat, 'username' => $autor->num_documento, 'profiles' => $perfiles_array]]; } } $response = ['success' => 1, 'id' => $n->idninhos, 'names' => $n->nombres, 'last_name' => $n->apellido_pat, 'gender' => $genero, 'age' => $edad, 'sessions' => $asistencias->count(), 'joining_date' => strtotime($n->created_at), 'comments' => $lista_comentarios]; return Response::json($response, 200); }