Ejemplo n.º 1
0
 /**
  * Maneja la creacion de paginas
  *  
  * @return Response
  */
 public function create(Request $request)
 {
     //Obtiene toda la data enviada para crear la nueva pagina
     $data = $request->all();
     //Tranforma el futuro nombre de la pagina en minusculas y
     //el nombre del repositorio padre
     $data['nombre'] = strtolower($data['nombre']);
     $data['repositorio'] = strtolower($data['repositorio']);
     //Mensajes de error para las validaciones
     $menssages = ['nombre.required' => 'El campo nombre es requerido', 'nombre.alpha' => 'El nombre solo puede contener letras', 'nombre.min' => 'El nombre debe ser de almenos 4 caracteres', 'nombre.max' => 'El nombre debe ser menor a 60 caracteres', 'unique' => 'El nombre de la pagina ya existe'];
     //Asigna el nombre de la pagina mediante la union del nombre del repositorio padre
     //con el nombre de la pagina
     $data['especialNombre'] = $data['repositorio'] . '/' . $data['nombre'];
     //Valida cada compo listado con cada regla listada
     $validator = Validator::make($data, ['nombre' => 'required|alpha|min:4|max:60', 'especialNombre' => 'unique:paginas,nombre'], $menssages);
     //Comprueba si hay algun error
     if ($validator->fails()) {
         //Si los datos no pasaron la validacion regresa el primer error encontrado
         return Response()->json(['status' => 'danger', 'menssage' => $validator->errors()->first()]);
     } else {
         //Si los datos pasaron las validaciones crea la pagina y regresa el mensaje de exito
         Paginas::create(['nombre' => $data['especialNombre'], 'repositorio' => $data['repositorio'], 'creador' => $request->user()->email, 'numero' => $data['numero']]);
         return Response()->json(['status' => 'success', 'menssage' => 'Se ha creado la pagina ' . $request->input("nombre")]);
     }
 }