SoftwareBrothers / adminjs-nestjs

NestJS module to import admin the Nest way
MIT License
158 stars 35 forks source link

Postgres example app #44

Open namgk opened 2 years ago

namgk commented 2 years ago

Is there any example app that works with postgres db?

thanks

mikhin commented 6 months ago
import { Module } from '@nestjs/common';
import { AdminModule } from '@adminjs/nestjs';
import { ConfigModule } from '@nestjs/config';
import { Database, Resource, getModelByName } from '@adminjs/prisma';
import AdminJS from 'adminjs';
import { PrismaService } from 'nestjs-prisma';

import { AppController } from './app.controller.js';
import { AppService } from './app.service.js';
import provider from './admin/auth-provider.js';

AdminJS.registerAdapter({ Database, Resource });

@Module({
  imports: [
    ConfigModule.forRoot({
      envFilePath: '.env',
    }),
    AdminModule.createAdminAsync({
      useFactory: () => {
        const prisma = new PrismaService();

        return {
          auth: {
            provider,
            cookiePassword: process.env.COOKIE_SECRET,
            cookieName: 'adminjs',
          },
          sessionOptions: {
            resave: true,
            saveUninitialized: true,
            secret: process.env.COOKIE_SECRET,
          },
          adminJsOptions: {
            rootPath: '/admins',
            resources: [
              { resource: { model: getModelByName('User'), client: prisma }, options: {} },
              { resource: { model: getModelByName('Dog'), client: prisma }, options: {} },
              { resource: { model: getModelByName('Hotel'), client: prisma }, options: {} },
              { resource: { model: getModelByName('Service'), client: prisma }, options: {} },
              { resource: { model: getModelByName('Booking'), client: prisma }, options: {} },
              { resource: { model: getModelByName('Payment'), client: prisma }, options: {} },
              { resource: { model: getModelByName('Review'), client: prisma }, options: {} },
            ],
          },
        };
      },
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}