/** * 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")]); } }