20. Panduan Kustomisasi Pengembang
Ringkasan
Panduan ini berisi petunjuk langkah-demi-langkah bagi pengembang untuk memperluas kemampuan boilerplate, termasuk membuat router tRPC API baru, membuat halaman admin baru, serta menambahkan izin RBAC baru.
1. Cara Menambah Router tRPC API Baru
src/server/api/routers/products.ts:typescript
import { createTRPCRouter, protectedProcedure } from "~/server/api/trpc";
import { z } from "zod";
export const productsRouter = createTRPCRouter({
getAll: protectedProcedure.query(async ({ ctx }) => {
return ctx.db.product.findMany();
}),
});src/server/api/root.ts:typescript
import { productsRouter } from "~/server/api/routers/products";
export const appRouter = createTRPCRouter({
// Router yang sudah ada...
products: productsRouter,
});tsx
const { data: products } = api.products.getAll.useQuery();2. Cara Menambah Halaman Admin Baru
src/app/(admin)/products/page.tsx.<RouteGuard requiredPermission="products.view">.src/components/app-sidebar.tsx.3. Cara Menambah Permission RBAC Baru
prisma/seed.ts.permissions:typescript
{ name: "products.view", description: "View product list", module: "PRODUCTS" },
{ name: "products.create", description: "Create products", module: "PRODUCTS" },pnpm prisma db seed.Berkas Terkait
src/server/api/root.ts — Katalog tRPC App Routersrc/components/app-sidebar.tsx — Menu navigasi sidebarprisma/seed.ts — Script seed data izin hak akses