Netlify lo he usado porque permite pasar parámetros (en un principio iba a usarlo, pero al final no) y porque tiene una configuración en formato .toml que queda muy clara. Además, no fuerza al usuario a tener una estructura de directorios concreta, eso se puede configurar. La conexión de netlify con el repo la hice a través de su interfaz web, en la siguiente captura se puede ver que está correctamente conectado (aunque también se puede ver en el badge del README.md).
Las funciones implementadas han sido las siguientes:
- status. Una función muy simple que sólo devuelve el código 200 y un json diciendo que la aplicación funciona. Sirve para conocer si la API funciona bien. Sus tests es encuentran aquí.
- league. Toma los datos del fichero data.json y los muestra. Este fichero contiene la clasificación de La Liga de fútbol española y esta función corresponde a esta HU. Sus tests se encuentran aquí.
- credits. Toma los ficheros de credits.json y los muestra. Este fichero contiene las personas/equipo de fútbol que han contribuido para realizar este proyecto, bien planteando el problema o solucionándolo. Sus tests se encuentran aquí.
No solamente se han implementado estas funciones, también añadí un workflow para actualizar los datos de data.json todos los días a medianoche. Dicho workflow se puede checkear aquí y hace uso de este pequeño script. Esto lo he hecho así porque la API que uso sólo me deja hacer 100 llamadas gratuitas al día, por lo que así tengo un control del número de llamadas.
He usado el fichero de configuración de netlify para poder hacer redirecciones y dejar los URIs más cortos, además de especificarle el directorio que debe de publicar y el directorio de las funciones implementadas.
Esta plataforma la he usado porque es muy interesante, además de contar con functions, cuenta con un hosting, una base de datos muy potente, etc. En el futuro sería interesante darle más usos.
Para crear la función he creado en el directorio telegram la estructura de ficheros necesaria para Firebase. Dentro del directorio functions se encuentra un nuevo package.json con las dependencias de la función. El bot que he implementado coge la información de la API de netlify
que he implementado anteriormente para poder mostrarla en Telegram
en forma de mensaje entendible por cualquier humano que hable español (uso el bot de interfaz para la API). Dicho bot está implementado en este fichero.
Se puede conversar con el bot buscando en Telegram @footstatsiv_bot
.
Como Firebase no permite conectarse a GitHub, he creado un workflow para hacer un despliegue continuo del bot.
Se han eliminado las dependencias de telegraf y axios. Ahora se sirven los datos directamente leídos del fichero JSON, que se actualiza con el workflow que ponía al día también los datos de netlify.
El bot se ha rehecho usando respuestas HTTP con JSON, en vez de telegraf
.