✌
Introducción
Qué aprenderás sobre API con Sails.js
Presentando el proyecto
Comenzando con Sails
Introducción a Sails.js
Estructura de archivos
Preparación del ambiente de desarrollo
Setup de Espacio de Trabajo
Generando rutas REST con blueprint
Instalación de MongoDB
Conexión a Mongo
Instalar MySQL y usarlo con Sails (a través de WaterLine)
CRUD
Entendiendo operaciones CRUD
Crear modelo de rodada
Crear app de Ionic
Obtener todas las Rodadas: preparando la aplicación para mostrar datos
Obtener todas las Rodadas: mostrando los datos
Crear Rodada: recibiendo parámetros desde la URL
Crear Rodada: enviando información desde el formulario
Actualizar Rodada
Eliminar Rodadas
Autenticación y Usuarios
Obtener Rodada
Crear Modelo y Controller de Usuarios
Implementar validación de modelo
Nueva versión de la librería Joi
Crear Usuario
Cifrado de contraseña
Implementación de Login
Sistemas Externos
Uso de JSON Web Token
Policies: verificar si usuario está loggeado
Agregar usuario a Ride
Preparando la App para implementar el Login y Sign up
Implementando Login
Implementando Sign up
Agregar puntos de Rodada
Obtener API Keys para Clima y Distancias
Integración Google Geocoding: definiendo la lógica
Integración Google Geocoding: probando la funcionalidad
Integración Weather API
Desplegar clima, distancia y tiempo en cada punto de Rodada
Cierre
Cierre
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En esta sección te voy a guiar en cómo agregar la funcionalidad necesario para que los usuarios de tu aplicación puedan crear nuevos 'raids'. Este paso es crucial para permitir a los usuarios gestionar eventos fácilmente y que estos se reflejen directamente en la base de datos.
Es importante adecuar nuestra lógica para permitir la creación de un 'raid'. Sigamos estos pasos para lograrlo:
Definir el Método de Creación:
Services
y crearemos un método similar al que ya tenemos.POST
para enviar los datos a nuestra API:crearRaid(raid: RaidModel): Observable<any> {
return this.http.post(`${this.baseUrl}/raids`, raid);
}
Este nuevo método toma un objeto del tipo RaidModel
como parámetro. Este raid
contiene toda la información necesaria para crear el evento.
El siguiente paso es preparar nuestro formulario para recolectar los datos del usuario, configurando correctamente el modelo y asegurándonos de que estamos utilizando las herramientas del framework eficientemente:
Configurar el Formulario:
Raid
y asígnale un valor predeterminado:import { Raid } from '../models/raid.model';
const newRaid = new Raid('Default Title', new Date());
Crear Inputs Dinámicos:
<ion-item *ngIf="newRaid">
<ion-label position="floating">Título del Raid</ion-label>
<ion-input [(ngModel)]="newRaid.title"></ion-input>
</ion-item>
<ion-item>
<ion-label position="floating">Fecha de Inicio</ion-label>
<ion-datetime displayFormat="DD/MM/YYYY HH:mm" [(ngModel)]="newRaid.startDate"></ion-datetime>
</ion-item>
Botón de Acción:
guardarRaid
que se encarga de manejar el envío de datos:<ion-button expand="full" (click)="guardarRaid()">Guardar Raid</ion-button>
Es crucial preparar la aplicación para controlar correctamente las respuestas positivas y las situaciones de error:
Suscripción a la Respuesta:
this.raidService.crearRaid(this.newRaid).subscribe({
next: (data) => {
console.log('Raid creado exitosamente:', data);
alert('Se creó tu rodada');
},
error: (error) => {
console.error('Error al crear el raid:', error);
alert('No se pudo crear la rodada');
}
});
Redirección tras Éxito:
Con la funcionalidad básica ya establecida, podemos permitir a los usuarios cambiar detalles del 'raid' creado. Esto incluirá agregar capacidades de edición, manejo de cambios en la hora o destino, asegurando que la experiencia del usuario sea sencilla y efectiva. Continúa iterando sobre estas funcionalidades y mejora la experiencia según las necesidades de tus usuarios.
Este es un ejemplo claro de cómo integrar la programación asíncrona y el manejo de formularios dinámicos en una aplicación web. A medida que perfecciones estas habilidades, verás cómo se amplifica tu capacidad para desarrollar soluciones efectivas y robustas.
Aportes 2
Preguntas 0
✌
si alguno tuvo el siguiente err, proveniente del archivo ride-form.page.ts
Type 'boolean' is not assignable to type 'false'.
es por que la declaración :
editing: false
no le podemos asignar el valor false directamente, sino que primero debemos declararlo como boolean y después asignarle el valor “false” en este caso.
para eso debería quedar de la siguiente forma
id: string;
**++ editing: boolean = false;++**
ride: Ride = DEFAULT_RIDE_OBJECT;
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?