65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
/**
|
|
* TEMPLATE - Exemplo de módulo de rotas para o Dev Center
|
|
*
|
|
* Copie este arquivo e renomeie para criar as rotas de um módulo.
|
|
* Exemplo: server/modules/bsc.ts
|
|
*
|
|
* REGRAS:
|
|
* 1. Exporte default um Router do Express
|
|
* 2. O prefixo /api/modules/{nomeModulo} é adicionado automaticamente
|
|
* 3. Importe schemas do módulo via @shared/schemas/{nomeModulo}
|
|
* 4. Use db de ../../db para queries
|
|
* 5. Valide inputs com Zod/drizzle-zod
|
|
*
|
|
* IMPORTANTE:
|
|
* - O auto-loader monta as rotas em /api/modules/{nomeDoArquivo}
|
|
* - Arquivos que começam com _ são ignorados (_template.ts, _utils.ts)
|
|
*/
|
|
|
|
/*
|
|
import { Router } from "express";
|
|
import { db } from "../../db";
|
|
import { exemploItems, insertExemploItemSchema } from "@shared/schemas/exemplo";
|
|
import { eq } from "drizzle-orm";
|
|
|
|
const router = Router();
|
|
|
|
// GET /api/modules/exemplo - Listar items
|
|
router.get("/", async (req, res) => {
|
|
try {
|
|
const items = await db.select().from(exemploItems);
|
|
res.json(items);
|
|
} catch (error: any) {
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
});
|
|
|
|
// POST /api/modules/exemplo - Criar item
|
|
router.post("/", async (req, res) => {
|
|
try {
|
|
const parsed = insertExemploItemSchema.safeParse(req.body);
|
|
if (!parsed.success) {
|
|
return res.status(400).json({ error: parsed.error.format() });
|
|
}
|
|
const [item] = await db.insert(exemploItems).values(parsed.data).returning();
|
|
res.status(201).json(item);
|
|
} catch (error: any) {
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
});
|
|
|
|
// GET /api/modules/exemplo/:id - Buscar por ID
|
|
router.get("/:id", async (req, res) => {
|
|
try {
|
|
const [item] = await db.select().from(exemploItems)
|
|
.where(eq(exemploItems.id, parseInt(req.params.id)));
|
|
if (!item) return res.status(404).json({ error: "Não encontrado" });
|
|
res.json(item);
|
|
} catch (error: any) {
|
|
res.status(500).json({ error: error.message });
|
|
}
|
|
});
|
|
|
|
export default router;
|
|
*/
|