Bienvenidos.
Pero tenemos un pequeño problema.
Cada vez que queremos crear o actualizar un cliente no se muestra correctamente el nombre en el mensaje
de éxito.
Por ejemplo, si vamos a crear a John, por ejemplo, John Doe 2 cualquier correo.
Y si se fijan, aparece un nuevo cliente indefinido, creado con éxito, cliente indefinido.
Ahí está el problema.
Por qué?
Bueno, porque cambiamos la estructura.
Lo que estamos retornando en el Bakker antes, cada vez que creamos un cliente nuevo o actualizamos
el cliente, retornamos el nuevo cliente o el actualizado.
Pero ahora estamos retornando un MAP que además del cliente que viene embebido dentro del objeto MAP,
junto con un mensaje de éxito.
Revisemos el código.
Si nos vamos a cliente Rest Controller en crear por acá tenemos estamos retornando un map bueno, un
response entity que contiene el map con el cliente y el mensaje de éxito.
Por lo tanto, ya no estamos retornando de forma directa al cliente.
Ahora esto se traduce a un Jason.
Retornamos una estructura JSON que contiene el atributo mensajea con el texto y el atributo cliente
con el objeto cliente.
Entonces ahora en Angular tenemos que manejar esto, tenemos que modificar.
Vamos al código en Angular y nos vamos a clientes Deunos.
Vamos a Fort Components.
Vamos a crear.
Se fijan acá intenta invocar el nombre de forma directa cliente pero en realidad estamos retornando
un objeto MAP.
Como vimos, no el objeto cliente.
Hay diferentes soluciones.
Por ejemplo, veamos la primera vámonos.
Hay cliente servis.
Vámonos a creer.
Entonces, en vez de retornar a casa un cliente, vamos a retornar Henny E Ni tipo de dato, cualquier
tipo dato lo dejamos más flexible.
Vamos a guardar acá en el crear.
Ya podemos acceder a nuestro Jaison y al objeto cliente en el suscrip en vez de cliente.
Cambiemos a Jason, por ejemplo.
El nombre lo mismo puede ser Jason o respuesta o response lo que queramos.
Y acá simplemente vamos a colocar acá Jason.
Jason punto cliente punto nombre a ese entonces Jason contiene el objeto cliente y ahí accedemos al
nombre perfecto.
Vamos a guardar.
Probemos la aplicación.
Ojo, solamente cambiamos para crear, no para editar.
Vamos a crear.
Colocábamos, por ejemplo, Andrés y cualquier corregimos.
Vamos a colocar.
Crear.
Perfecto.
Ahí está funcionando.
Nuevo cliente.
Cliente Andrés.
Creado con éxito.
Ya lo tenemos solucionado.
Eso es una forma.
Incluso podríamos acá cambiar, customizar esto.
Por ejemplo, vamos a quitar esto, vamos a quitar el cliente, vamos a quitar este con éxito y acá
simplemente vamos a copiar, vamos a pegar dos puntos espacio y acá en vez de cliente, nombre, mensaje.
Es decir, el mensaje que estamos retornando desde el balcón y el objeto cliente a través del Chatswin.
Guardamos, probemos.
Por poner cualquier cosa.
Nuevo cliente, el cliente ha sido creado con éxito.
2 Punto Pedro está perfecto, entonces ya estamos manejando de forma correcta los parámetros que nos
está retornando el Bitcoin cuando creamos un cliente.
Ahora no es ningún error.
No hay ningún problema.
Ahora podríamos replicar esto mismo para él actualizar.
Se fijan que acá marcó un error.
Por qué?
Porque si nos vamos a clientes servis el APDAYC, lo tenemos por acá.
El latte retorna un observable cliente, por lo tanto el componente va a esperar ese tipo.
Por eso tenemos que ser más flexible y colocar Henny cualquier tipo.
Lo cambiamos en el observable y también acá en el método para que lo convierta de forma automática.
De esa forma convierte la respuesta de forma automática a un tipo de guárdanos, tal como lo hicimos
en Crédit.
Ah, y bueno, también faltaría.
En vez de cliente cambiar acá, allá.
Pero independiente.
Si acá hubiéramos tenido, por ejemplo en el ataque, acá lo vamos a dejar como estaba.
Cliente guardamos acá.
Igual me marca el error de que está esperando el objeto cliente.
Y ahí está bien.
Tiene que ser del tipo Hanni.
Y ahí podemos usar tal como lo hacíamos en el creer.
Vamos a editar.
Por ejemplo, 2 dos cliente actualizado, el cliente ha sido actualizado con éxito Andrés 2.
Perfecto, Eita está funcionando bien, bien, cómo explicaba eso?
Sería una forma y sería la forma si queremos manejar el servis, el Abbey y el Crédit con tipo de dato
Henny.
Ahora, qué pasa si queremos manejar estos tipos de dato como clientes?
Necesitamos retornar en un tipo observable de cliente.
Por lo tanto, quiero convertir mi Jaison, lo que está retornando en un observable de cliente.
Para eso, para convertir, para transformar una respuesta que viene desde el servidor, tenemos que
utilizar el operador MAP.
De esta forma tomamos nuestro flujo, el flujo reactivo que estamos recibiendo y podemos manipular.
Podemos convertir los datos que se van emitiendo en otros tipos de objeto.
Entonces acá vamos a volver al cliente, vamos a volver a cliente y en el post acá lo vamos a quitar,
ya que no quiero que lo convierta de forma automática, sino yo voy a convertir la respuesta de forma
explícita, de forma manual a través del operador MAP.
Entonces en el post quitamos el tipo de dato para que no lo convierta, pero si dejamos el observable
cliente vamos a tener entonces el operador MAP.
Recuerden que los operadores se separan por comas.
Bien, acá tenemos el Chatswin, la respuesta al responsos a lo mismo, pues es Jaison o respond como
le queramos llamar llegá, tenemos que convertirlo bien, pero por defecto el response es del tipo objecto
del tipo.
Entonces una forma de convertir es, por ejemplo responses.
El atributo donde se encuentra el cliente es cliente, punto cliente as cliente.
Aquí estamos convirtiendo el atributo cliente de nuestro Yeison en el objeto cliente.
Ya está perfecto.
El problema que response como decía el tipo Object.
Entonces acá tenemos que indicar con paréntesis dos punto que es un tipo genérico, un tipo Henny.
Por lo tanto, ahora sí que estamos recibiendo un tipo más flexible.
Un tipo genérico que contiene tanto el cliente como también el mensaje.
Pero me interesa convertir solamente el cliente en el objeto cliente acá.
Y eso sería todo respecto a la clase service.
Vamos a guardar y volvemos al form component.
Acá tenemos que modificar bien.
Ahora el créate espera un tipo de dato cliente y acá lo estamos manejando de la forma anterior como
un jetson.
Volvemos al forma antigua que teníamos.
Entonces acá sería cliente junto nombre.
Entonces el cliente, su nombre, ha sido creado con éxito
y lo dejamos de esa forma.
Ahora con pila, sin ningún tipo de rol.
Bien para el ejemplo, podríamos dejar el método Crédit de una forma y el método Apte de otra forma
para que tengan las dos alternativas la que mejor quieran utilizar.
Las dos están correctas, ya sea, ya sea manejar el retorno del observable como el objeto cliente y
luego en el component en el cree que lo manejamos como objeto cliente y customizado.
Nuestro mensaje de éxito, o bien como lo tenemos en el ataque, lo manejamos como unani.
Por lo tanto retornamos un observable Henny.
Tenemos que tener eny tanto en el método de la petición http y en el ratón.
Y lo manejamos en el component como un Jason del tipo N del tipo genérico y el mensaje de éxito y también
el nombre cliente, lo obtendremos directamente desde el backend.
Probemos.
Vamos a crear un cliente.
Vamos a crear.
No, un cliente es cliente, Juan ha sido, creo, con éxito perfecto.
Ahora vamos a editarán 3 2, a Andrés 3.
El cliente se actualizó con éxito punto 3.
Perfecto.
Ahí tenemos las dos versiones, las dos formas de solucionar este problema.
Sin más hemos llegado a su fin.
Cualquier duda que tengas, escríbela en el foro.
Nos vemos.