Saltar al contenido

BRAGE comando

Descripción

El comando brage lee las carpetas y archivos .sql en la carpeta app, para luego crear las rutas en la carpeta server. Logeando información, advertencias y errores en el camino.

Sin ninguna opción el comando observará cualquier cambio en la carpeta app.

sh
$ brage

Opciones

La versión completa del software incluye un conjunto de opciones para el comando brage.

ADVERTENCIA

Hasta ahora solo la opción --once está disponible en la versión gratuita del paquete

OpcionesAtajos
--once-oEjecuta el comando una vez son el "watchmode"
--check-cChequea la sintaxis SQL en los archivos de la carpeta app
--showexpected-sMuestra la sintaxis esperada en los errores dados por --check
--dbcreate-dRecrea las bases de datos con las tablas de la carpeta app
--env-eEspecifica el entorno para la opción en --dbcreate (string)

Ejemplos

Similar a hacer brage -c -s ejecuta la funcionalidad SQL para corroborar la sintaxis correcta en todos los archivos .sql de la carpeta app. La opción -s mustra el sql esperado.

sh
$ brage --check --showexpected

Similar a hacer brage -d -e test ejecuta el generador de la DB con el comando mysql usando las tablas de la carpeta app. La opción -e acepta valores de dev | test | prod.

sh
$ brage --dbcreate --env test

Directorio App

El comando brage trabaja directamente con la carpeta APP.

Rutas en App

Cada carpeta en el directorio app corresponde a una ruta en el servidor api.

ADVERTENCIA

Sólo las rutas en el directorio raiz de app estan disponibles. NO se permiten RUTAS ANIDADAS.

Entrada

.
├─ app
│  ├─ clients
│  │  └─ **
│  ├─ orders
│  │  └─ **
│  ├─ README.md

Salida

.
├─ server
│  ├─ global
│  │  └─ **
│  ├─ routes
│  │  └─ clients
│  │  |  └─ **
│  │  └─ orders
│  │  |  └─ **
│  ├─ README.md

Tablas en App

Cada carpeta en el directorio app tiene que tener table.sql que generará las validaciones.

ADVERTENCIA

El código de la tabla SQL debe estar escrito para MySQL. Cada campo entre comillas invertidas

El orden de la definición en los campos debe ser | TIPO | VALOR NULL | VALOR POR DEFECTO |

app \ clients \ table.sql

sql
CREATE TABLE `clients` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `user_id` INT NOT NULL,
  `first_name` VARCHAR(200) NOT NULL,
  `last_name` VARCHAR(200) NOT NULL,
  `email` VARCHAR(250) NOT NULL UNIQUE,
  `phone` VARCHAR(250) NOT NULL UNIQUE,
  `address` VARCHAR(250) NOT NULL UNIQUE,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Consultas en App

Cada carpeta en el directorio app tiene que tener queries.sql que generará los endpoints.

ADVERTENCIA

Cada solicitud debe terminar con punto y coma, además de tener un espacio en blanco entre ellas

Cada título de solicitud debe empezar con get, add, change o remove

Cada campo en la solicitud debe estar entre comillas invertidas

app \ clients \ queries.sql

sql
-- getAll
-- ! endpoint: all
    SELECT * FROM `clients`
    WHERE `id` = ?;

-- addNew
-- ! message: Todos los clientes del usuario solicitados
    INSERT INTO `clients` (`first_name`, `last_name`, `email`, `phone`, `address`)
    VALUES (?, ? ,?, ?, ?);

-- changeAddress
    UPDATE `clients`
    SET `address` = ?,
    WHERE `id` = ?;

-- remove
    DELETE FROM `clients`
    WHERE `id` = ?;

Publicado bajo una licencia de uso personal.