Ejercicio chat

En el chat que ya tenemos vamos a incluir algunas mejoras:

– Evitar que se puedan mandar mensajes más largos de 140 caracteres
– Filtrar palabras malsonantes
– Posibilidad de enviar emoticonos
– Posibilidad de tener cuatro salas diferentes de chat y elegir a cual te quieres conectar.

Ejercicio react redux thunk

Utilizando la api de generar personas:

https://randomuser.me/documentation

Vamos a crear una aplicación de react con redux que utilice thunk que se irá componiendo de las siguientes fases:

Fase 1: Nos buscará 1 usuario y nos mostrará los siguientes datos: Foto, nombre completo, mail y dirección

Fase 2: Añadir un botón que nos cargue otro usuario al azar.

Fase 3: Al lado del botón tener un input en el que podamos indicar la cantidad de usuarios que queremos retornar.

Fase 4: Añadir al lado del botón si queremos hombres, mujeres o todos.

Fase 5: Añadir al lado un combobox con todas las nacionalidades o escoger alguna de las que nos permite la api

¡Ánimo!

Podemos pasar parámetros a las acciones de thunk.

JS array find y findIndex

Enlaces:

https://www.w3schools.com/jsref/jsref_find.asp
https://www.w3schools.com/jsref/jsref_findindex.asp
https://appdividend.com/2018/12/17/javascript-array-find-example-array-prototype-find-tutorial/

   let num = [1, 2, 3, 4, 5, 6, 7, 8, 9];
 
  console.log(num.find(valor => valor > 5)); //Devuelve 6
    console.log(num.findIndex(valor => valor > 5)); //Devuelve 5
    let cad = "hola que tal";
    console.log(cad.split(" ").find(valor => valor.length <= 3)); //Devuelve que
    console.log(cad.split(" ").findIndex(valor => valor.length <= 3)); //Devuelve 1
    let libros = [{ titulo: "Quijote", paginas: 400 },
    { titulo: "El buscón", paginas: 300 },
    { titulo: "Orestiada", paginas: 200 }]

    console.log(libros.find(valor=>valor.paginas<250));// Devuelve {titulo: "Orestiada", paginas: 200}
    console.log(libros.findIndex(valor=>valor.paginas<250));// Devuelve 2

    //Ejercicio: crear una función que pasándole una cadena nos devuelva la primera palabra que tenga una longitud mayor de 8
    //Ejemplo: primeraLarga("hola que tal")->undefined primeraLarga("en un lugar de la mancha arquetípica y lustrosa")->arquetípica

Ejercicio API

Vamos a consultar libros y artículos del nytimes. Aquí hay la lista de las apis:

https://developer.nytimes.com/apis

Yo me he creado una apikey: SFq0lnJwGzV4X8XyqV2kQvA3LgKAp3kN

Pero os podéis crear la vuestra.

Me gustaría que, desde el postman, accediéramos a la lista de los libros más vendidos y a los artículos de los tres últimos meses.

También podéis crear vuestra propia apikey y acceder, por ejemplo, a películas.

¡A por ello!

Añadir actor a película


$server = "localhost";
$user = "root";
$password = "";
$db = "sakila";
try {
    $conn = new PDO("mysql:host=$server;dbname=$db;charset=UTF8", $user, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //Los datos que tengo que insertar
  
    $nombre = "VIVIEN";
    $apellidos = "BERGEN";
    $pelicula="ACADEMY DINOSAUR";
    
    $sql="SELECT * FROM actor where first_name=:first_name and last_name=:last_name";
    $parametros=[
        'first_name'=>$nombre,
        'last_name'=>$apellidos
    ];
    
    $st=$conn->prepare($sql);
    $st->execute($parametros);
    $actor=$st->fetch();
    $actor_id=$actor['actor_id'];
    echo $actor_id;
    
     $sql="SELECT * FROM film where title=:title";
    $parametros=[
        'title'=>$pelicula
    ];
    
    $st=$conn->prepare($sql);
    $st->execute($parametros);
    $film=$st->fetch();
    $film_id=$film['film_id'];
    echo $film_id;
    
    $sql="insert into film_actor(film_id,actor_id) values (:film_id,:actor_id)";
     $parametros=[
        'film_id'=>$film_id,
        'actor_id'=>$actor_id,
    ];
    $st=$conn->prepare($sql);
    $st->execute($parametros);
} catch (Exception $e) {
    echo "Connection failed: " . $e->getMessage();
}

Ejercicios vistas

Crear una vista que nos muestre el pais, la ciudad, la dirección y el nombre de los clientes. La podemos llamar clientes_direccion

Con esa vista creada será muy fácil mostrar los clientes de Argentina o Italia

Crear una vista que nos relacione la película con sus pagos. Que nos muestre el id de la película, el title, y todos los datos de payment.

Con esa vista sería muy fácil ver el total de pagos por película.