1
00:00:00,180 --> 00:00:00,900
Bienvenidos.

2
00:00:00,960 --> 00:00:02,580
Pero tenemos un pequeño problema.

3
00:00:02,610 --> 00:00:08,640
Cada vez que queremos crear o actualizar un cliente no se muestra correctamente el nombre en el mensaje

4
00:00:08,640 --> 00:00:09,000
de éxito.

5
00:00:09,060 --> 00:00:18,210
Por ejemplo, si vamos a crear a John, por ejemplo, John Doe 2 cualquier correo.

6
00:00:20,450 --> 00:00:25,310
Y si se fijan, aparece un nuevo cliente indefinido, creado con éxito, cliente indefinido.

7
00:00:25,400 --> 00:00:26,240
Ahí está el problema.

8
00:00:26,330 --> 00:00:26,900
Por qué?

9
00:00:26,960 --> 00:00:28,970
Bueno, porque cambiamos la estructura.

10
00:00:29,060 --> 00:00:33,950
Lo que estamos retornando en el Bakker antes, cada vez que creamos un cliente nuevo o actualizamos

11
00:00:33,950 --> 00:00:37,450
el cliente, retornamos el nuevo cliente o el actualizado.

12
00:00:37,490 --> 00:00:44,150
Pero ahora estamos retornando un MAP que además del cliente que viene embebido dentro del objeto MAP,

13
00:00:44,180 --> 00:00:45,530
junto con un mensaje de éxito.

14
00:00:45,650 --> 00:00:46,730
Revisemos el código.

15
00:00:47,970 --> 00:00:54,900
Si nos vamos a cliente Rest Controller en crear por acá tenemos estamos retornando un map bueno, un

16
00:00:54,900 --> 00:01:00,390
response entity que contiene el map con el cliente y el mensaje de éxito.

17
00:01:00,420 --> 00:01:03,780
Por lo tanto, ya no estamos retornando de forma directa al cliente.

18
00:01:03,900 --> 00:01:06,540
Ahora esto se traduce a un Jason.

19
00:01:06,630 --> 00:01:13,140
Retornamos una estructura JSON que contiene el atributo mensajea con el texto y el atributo cliente

20
00:01:13,170 --> 00:01:14,340
con el objeto cliente.

21
00:01:14,520 --> 00:01:18,660
Entonces ahora en Angular tenemos que manejar esto, tenemos que modificar.

22
00:01:18,780 --> 00:01:23,190
Vamos al código en Angular y nos vamos a clientes Deunos.

23
00:01:23,190 --> 00:01:25,290
Vamos a Fort Components.

24
00:01:26,430 --> 00:01:27,120
Vamos a crear.

25
00:01:27,180 --> 00:01:33,150
Se fijan acá intenta invocar el nombre de forma directa cliente pero en realidad estamos retornando

26
00:01:33,210 --> 00:01:34,050
un objeto MAP.

27
00:01:34,140 --> 00:01:35,940
Como vimos, no el objeto cliente.

28
00:01:36,000 --> 00:01:37,290
Hay diferentes soluciones.

29
00:01:37,380 --> 00:01:39,450
Por ejemplo, veamos la primera vámonos.

30
00:01:39,450 --> 00:01:40,470
Hay cliente servis.

31
00:01:41,480 --> 00:01:42,500
Vámonos a creer.

32
00:01:42,590 --> 00:01:48,440
Entonces, en vez de retornar a casa un cliente, vamos a retornar Henny E Ni tipo de dato, cualquier

33
00:01:48,440 --> 00:01:51,340
tipo dato lo dejamos más flexible.

34
00:01:52,760 --> 00:01:55,970
Vamos a guardar acá en el crear.

35
00:01:56,180 --> 00:02:02,990
Ya podemos acceder a nuestro Jaison y al objeto cliente en el suscrip en vez de cliente.

36
00:02:03,050 --> 00:02:06,140
Cambiemos a Jason, por ejemplo.

37
00:02:06,260 --> 00:02:10,460
El nombre lo mismo puede ser Jason o respuesta o response lo que queramos.

38
00:02:10,550 --> 00:02:13,610
Y acá simplemente vamos a colocar acá Jason.

39
00:02:14,990 --> 00:02:21,980
Jason punto cliente punto nombre a ese entonces Jason contiene el objeto cliente y ahí accedemos al

40
00:02:21,980 --> 00:02:22,970
nombre perfecto.

41
00:02:23,060 --> 00:02:23,690
Vamos a guardar.

42
00:02:24,110 --> 00:02:25,190
Probemos la aplicación.

43
00:02:25,700 --> 00:02:29,210
Ojo, solamente cambiamos para crear, no para editar.

44
00:02:29,510 --> 00:02:30,290
Vamos a crear.

45
00:02:30,530 --> 00:02:36,150
Colocábamos, por ejemplo, Andrés y cualquier corregimos.

46
00:02:36,170 --> 00:02:36,890
Vamos a colocar.

47
00:02:39,590 --> 00:02:39,910
Crear.

48
00:02:40,910 --> 00:02:41,420
Perfecto.

49
00:02:41,560 --> 00:02:42,430
Ahí está funcionando.

50
00:02:42,470 --> 00:02:43,150
Nuevo cliente.

51
00:02:43,160 --> 00:02:43,940
Cliente Andrés.

52
00:02:43,970 --> 00:02:44,690
Creado con éxito.

53
00:02:44,810 --> 00:02:45,800
Ya lo tenemos solucionado.

54
00:02:45,920 --> 00:02:47,480
Eso es una forma.

55
00:02:48,350 --> 00:02:51,620
Incluso podríamos acá cambiar, customizar esto.

56
00:02:51,680 --> 00:02:58,310
Por ejemplo, vamos a quitar esto, vamos a quitar el cliente, vamos a quitar este con éxito y acá

57
00:02:58,430 --> 00:03:06,680
simplemente vamos a copiar, vamos a pegar dos puntos espacio y acá en vez de cliente, nombre, mensaje.

58
00:03:07,790 --> 00:03:14,810
Es decir, el mensaje que estamos retornando desde el balcón y el objeto cliente a través del Chatswin.

59
00:03:15,140 --> 00:03:16,250
Guardamos, probemos.

60
00:03:19,460 --> 00:03:20,750
Por poner cualquier cosa.

61
00:03:25,330 --> 00:03:27,670
Nuevo cliente, el cliente ha sido creado con éxito.

62
00:03:27,760 --> 00:03:32,580
2 Punto Pedro está perfecto, entonces ya estamos manejando de forma correcta los parámetros que nos

63
00:03:32,590 --> 00:03:35,800
está retornando el Bitcoin cuando creamos un cliente.

64
00:03:37,030 --> 00:03:38,350
Ahora no es ningún error.

65
00:03:38,440 --> 00:03:39,280
No hay ningún problema.

66
00:03:39,790 --> 00:03:44,020
Ahora podríamos replicar esto mismo para él actualizar.

67
00:03:47,290 --> 00:03:48,520
Se fijan que acá marcó un error.

68
00:03:48,580 --> 00:03:49,180
Por qué?

69
00:03:49,240 --> 00:03:53,650
Porque si nos vamos a clientes servis el APDAYC, lo tenemos por acá.

70
00:03:53,770 --> 00:04:00,250
El latte retorna un observable cliente, por lo tanto el componente va a esperar ese tipo.

71
00:04:00,430 --> 00:04:04,810
Por eso tenemos que ser más flexible y colocar Henny cualquier tipo.

72
00:04:05,380 --> 00:04:11,230
Lo cambiamos en el observable y también acá en el método para que lo convierta de forma automática.

73
00:04:11,440 --> 00:04:17,200
De esa forma convierte la respuesta de forma automática a un tipo de guárdanos, tal como lo hicimos

74
00:04:17,200 --> 00:04:17,810
en Crédit.

75
00:04:18,440 --> 00:04:20,410
Ah, y bueno, también faltaría.

76
00:04:20,530 --> 00:04:22,290
En vez de cliente cambiar acá, allá.

77
00:04:23,830 --> 00:04:24,760
Pero independiente.

78
00:04:25,570 --> 00:04:30,040
Si acá hubiéramos tenido, por ejemplo en el ataque, acá lo vamos a dejar como estaba.

79
00:04:30,100 --> 00:04:33,460
Cliente guardamos acá.

80
00:04:33,550 --> 00:04:37,530
Igual me marca el error de que está esperando el objeto cliente.

81
00:04:41,220 --> 00:04:42,540
Y ahí está bien.

82
00:04:42,630 --> 00:04:43,770
Tiene que ser del tipo Hanni.

83
00:04:43,860 --> 00:04:46,410
Y ahí podemos usar tal como lo hacíamos en el creer.

84
00:04:47,710 --> 00:04:48,580
Vamos a editar.

85
00:04:49,990 --> 00:04:55,830
Por ejemplo, 2 dos cliente actualizado, el cliente ha sido actualizado con éxito Andrés 2.

86
00:04:56,080 --> 00:04:59,110
Perfecto, Eita está funcionando bien, bien, cómo explicaba eso?

87
00:04:59,110 --> 00:05:08,110
Sería una forma y sería la forma si queremos manejar el servis, el Abbey y el Crédit con tipo de dato

88
00:05:08,200 --> 00:05:08,530
Henny.

89
00:05:08,590 --> 00:05:12,790
Ahora, qué pasa si queremos manejar estos tipos de dato como clientes?

90
00:05:12,820 --> 00:05:15,870
Necesitamos retornar en un tipo observable de cliente.

91
00:05:15,880 --> 00:05:21,250
Por lo tanto, quiero convertir mi Jaison, lo que está retornando en un observable de cliente.

92
00:05:21,340 --> 00:05:26,110
Para eso, para convertir, para transformar una respuesta que viene desde el servidor, tenemos que

93
00:05:26,110 --> 00:05:27,610
utilizar el operador MAP.

94
00:05:27,700 --> 00:05:33,760
De esta forma tomamos nuestro flujo, el flujo reactivo que estamos recibiendo y podemos manipular.

95
00:05:33,760 --> 00:05:37,930
Podemos convertir los datos que se van emitiendo en otros tipos de objeto.

96
00:05:38,080 --> 00:05:46,630
Entonces acá vamos a volver al cliente, vamos a volver a cliente y en el post acá lo vamos a quitar,

97
00:05:47,230 --> 00:05:52,180
ya que no quiero que lo convierta de forma automática, sino yo voy a convertir la respuesta de forma

98
00:05:52,240 --> 00:05:55,240
explícita, de forma manual a través del operador MAP.

99
00:05:55,780 --> 00:06:01,780
Entonces en el post quitamos el tipo de dato para que no lo convierta, pero si dejamos el observable

100
00:06:01,780 --> 00:06:05,620
cliente vamos a tener entonces el operador MAP.

101
00:06:07,630 --> 00:06:09,520
Recuerden que los operadores se separan por comas.

102
00:06:10,480 --> 00:06:16,090
Bien, acá tenemos el Chatswin, la respuesta al responsos a lo mismo, pues es Jaison o respond como

103
00:06:16,090 --> 00:06:21,520
le queramos llamar llegá, tenemos que convertirlo bien, pero por defecto el response es del tipo objecto

104
00:06:22,150 --> 00:06:22,620
del tipo.

105
00:06:23,080 --> 00:06:26,920
Entonces una forma de convertir es, por ejemplo responses.

106
00:06:27,010 --> 00:06:33,670
El atributo donde se encuentra el cliente es cliente, punto cliente as cliente.

107
00:06:34,870 --> 00:06:39,460
Aquí estamos convirtiendo el atributo cliente de nuestro Yeison en el objeto cliente.

108
00:06:39,700 --> 00:06:40,390
Ya está perfecto.

109
00:06:40,480 --> 00:06:42,920
El problema que response como decía el tipo Object.

110
00:06:43,120 --> 00:06:51,840
Entonces acá tenemos que indicar con paréntesis dos punto que es un tipo genérico, un tipo Henny.

111
00:06:52,690 --> 00:06:56,420
Por lo tanto, ahora sí que estamos recibiendo un tipo más flexible.

112
00:06:56,500 --> 00:07:01,300
Un tipo genérico que contiene tanto el cliente como también el mensaje.

113
00:07:01,450 --> 00:07:05,680
Pero me interesa convertir solamente el cliente en el objeto cliente acá.

114
00:07:05,770 --> 00:07:08,000
Y eso sería todo respecto a la clase service.

115
00:07:08,110 --> 00:07:10,870
Vamos a guardar y volvemos al form component.

116
00:07:11,320 --> 00:07:13,520
Acá tenemos que modificar bien.

117
00:07:13,600 --> 00:07:20,500
Ahora el créate espera un tipo de dato cliente y acá lo estamos manejando de la forma anterior como

118
00:07:20,500 --> 00:07:21,040
un jetson.

119
00:07:22,690 --> 00:07:25,030
Volvemos al forma antigua que teníamos.

120
00:07:27,520 --> 00:07:30,010
Entonces acá sería cliente junto nombre.

121
00:07:32,150 --> 00:07:35,870
Entonces el cliente, su nombre, ha sido creado con éxito

122
00:07:39,140 --> 00:07:40,130
y lo dejamos de esa forma.

123
00:07:40,190 --> 00:07:41,900
Ahora con pila, sin ningún tipo de rol.

124
00:07:42,150 --> 00:07:47,810
Bien para el ejemplo, podríamos dejar el método Crédit de una forma y el método Apte de otra forma

125
00:07:47,900 --> 00:07:51,590
para que tengan las dos alternativas la que mejor quieran utilizar.

126
00:07:51,680 --> 00:08:00,020
Las dos están correctas, ya sea, ya sea manejar el retorno del observable como el objeto cliente y

127
00:08:00,020 --> 00:08:05,810
luego en el component en el cree que lo manejamos como objeto cliente y customizado.

128
00:08:05,900 --> 00:08:12,490
Nuestro mensaje de éxito, o bien como lo tenemos en el ataque, lo manejamos como unani.

129
00:08:12,590 --> 00:08:15,230
Por lo tanto retornamos un observable Henny.

130
00:08:15,500 --> 00:08:21,580
Tenemos que tener eny tanto en el método de la petición http y en el ratón.

131
00:08:22,760 --> 00:08:30,050
Y lo manejamos en el component como un Jason del tipo N del tipo genérico y el mensaje de éxito y también

132
00:08:30,110 --> 00:08:33,530
el nombre cliente, lo obtendremos directamente desde el backend.

133
00:08:33,860 --> 00:08:34,460
Probemos.

134
00:08:35,210 --> 00:08:36,410
Vamos a crear un cliente.

135
00:08:43,290 --> 00:08:43,980
Vamos a crear.

136
00:08:45,060 --> 00:08:48,880
No, un cliente es cliente, Juan ha sido, creo, con éxito perfecto.

137
00:08:48,910 --> 00:08:52,660
Ahora vamos a editarán 3 2, a Andrés 3.

138
00:08:55,380 --> 00:08:58,200
El cliente se actualizó con éxito punto 3.

139
00:08:58,320 --> 00:08:58,770
Perfecto.

140
00:08:58,890 --> 00:09:02,490
Ahí tenemos las dos versiones, las dos formas de solucionar este problema.

141
00:09:02,960 --> 00:09:05,130
Sin más hemos llegado a su fin.

142
00:09:05,190 --> 00:09:07,590
Cualquier duda que tengas, escríbela en el foro.

143
00:09:07,680 --> 00:09:08,340
Nos vemos.
