Biorritmo para equipos ágiles 🔮

b(f)rutalchrist
lemontech-engineering
4 min readApr 12, 2019

En nuestro equipo de trabajo tenemos una tradición, cuando un compañero no se siente en su rendimiento óptimo (intelectual, físico o emocional) consultamos a la precisa e irrefutable ciencia del Biorritmo, para determinar el origen de sus males.

Como gran parte de nuestro equipo trabaja de manera remota se convirtió en una necesidad el poder acceder de manera rápida a nuestro cálculo de Biorritmo y compartirlo con el equipo. Por esto me puse el delantal y comencé a crear un aplicación para Slack.

Por donde comenzar

Primero que todo debía entender que carajos es el Biorritmo y cómo se calcula. Para esto consulté la vieja confiable: Wikipedia (no hacer caso de la mala reputación que intentan cargarle a la ciencia del Biorritmo).

Para los más entusiastas

Antes de empezar a tirar líneas de código apliqué la segunda vieja confiable: npmjs y buscando un poco encontré el paquete numerologic el cual, entre otros cálculos serios de numerología, entrega el cálculo del Biorritmo.

Test Biorritmo

Aplicaciones para Slack

Lo mejor de todo esto es que Slack cuenta con una muy buena documentación para los desarrolladores entusiastas. Así que voy a hacer un pequeño resumen de lo que pueden encontrar por acá: 📦.

Primeros pasos

Para comenzar a crear nuestra aplicación debemos ir a api.slack.com/apps?new_app=1 y completar los datos básicos de esta.

Nota: hasta este punto no tenía la menor idea de como utilizaría el paquete que había encontrado en npmjs. Solo estaba siguiendo pasos como un buen descendiente primate.

Lo siguiente será crear un comando para ser ejecutado en un canal de Slack y que despliegue nuestro Biorritmo para todos los participantes. Para esto vamos a la sección Slash Commands y creamos uno nuevo.

En este punto se resolvió la duda de la nota anterior. Hay que implementar un método en una API que nos retorne… Eeeeeh… algo. Buscando en la documentación de Slack encontré lo que debía retornar, ahora era solo cosa de montar una API, obtener la fecha de nacimiento del usuario y responder el Biorritmo.

¿Qué puede malir sal?

A los minutos de empezar a implementar la API se me ocurrió revisar la información que entrega Slack de los usuarios y adivinen qué dato no le entregamos a Slack al crear nuestras cuentas… si, nuestras fechas de nacimiento. Así que cambio de planes, el comando ahora será:

/biorhythm YYY-MM-DD

Creado la API

Para poder reutilizar esta API decidí hacer dos tipos de endpoints:

POST /biorhytm
POST /slack/biorhytm

El primero recibirá un JSON con year, month y day, retornando un array con el Biorritmo del mes en curso (ver imagen Test Biorritmo). Y el segundo recibirá la información enviada por Slack y retornará el Biorritmo para el día actual en un formato conocido para Slack.

Para disponibilizar esta API utilicé Heroku (siempre 🐀, nunca in🐀).

🔗 https://numerologic.herokuapp.com/slack/biorhythms

Ahora solo es cuestión de agregar nuestro endpoint en el campo Request URL de nuestro comando y listo.

Distribuyendo nuestra aplicación

Esta aplicación la creé en un espacio de trabajo en el cual soy admin, ahora era tiempo de instalarla en el espacio de trabajo de Lemontech Engineering.

Instalación en otros espacios de trabajo

Para instalar nuestras aplicaciones en otros espacios de trabajo Slack nos proporciona una URL de distribución.

¿Qué puede malir sal otra vez?

Creo que olvidé algo, la URL de re-dirección para la autenticación de nuestra aplicación.

No me detendré mucho a explicar esto ya que pueden leerlo en la documentación. Básicamente es disponibilizar otro endpoint que reciba un código y consuma el endpoint.

La hora de la verdad

Claudio Briones, Head of TTB, mostranding biorhythm application. El Limón Tecnológico, 2019.

--

--