mirror of
https://github.com/MrSedan/neuro-reply-website.git
synced 2026-01-15 04:59:42 +03:00
Add Admin module and entity
This commit is contained in:
11
backend/libs/database/admin.entity.ts
Normal file
11
backend/libs/database/admin.entity.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { Entity, PrimaryColumn } from 'typeorm';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
export class Admin {
|
||||||
|
constructor(props?: Partial<Admin>) {
|
||||||
|
Object.assign(this, props);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PrimaryColumn()
|
||||||
|
public id!: string;
|
||||||
|
}
|
||||||
@@ -1,8 +1,9 @@
|
|||||||
import { Module } from '@nestjs/common';
|
import { Module } from '@nestjs/common';
|
||||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||||
import { User } from './database/user.entity';
|
import { User } from './database/user.entity';
|
||||||
|
import { Admin } from './database/admin.entity';
|
||||||
@Module({
|
@Module({
|
||||||
imports: [TypeOrmModule.forFeature([User])],
|
imports: [TypeOrmModule.forFeature([User, Admin])],
|
||||||
exports: [TypeOrmModule],
|
exports: [TypeOrmModule],
|
||||||
})
|
})
|
||||||
export class LibsModule {}
|
export class LibsModule {}
|
||||||
|
|||||||
@@ -4,9 +4,10 @@ import { config } from 'config';
|
|||||||
import { LibsModule } from 'libs/libs.module';
|
import { LibsModule } from 'libs/libs.module';
|
||||||
import { AppInitService } from './modules/initialization/app.init.service';
|
import { AppInitService } from './modules/initialization/app.init.service';
|
||||||
import { UserModule } from './modules/user/user.module';
|
import { UserModule } from './modules/user/user.module';
|
||||||
|
import { AdminModule } from './modules/admin/admin.module';
|
||||||
|
|
||||||
@Module({
|
@Module({
|
||||||
imports: [LibsModule, UserModule, TypeOrmModule.forRoot(<TypeOrmModuleOptions>config.database)],
|
imports: [AdminModule, LibsModule, UserModule, TypeOrmModule.forRoot(<TypeOrmModuleOptions>config.database)],
|
||||||
controllers: [],
|
controllers: [],
|
||||||
providers: [AppInitService],
|
providers: [AppInitService],
|
||||||
})
|
})
|
||||||
|
|||||||
22
backend/src/modules/admin/admin.controller.ts
Normal file
22
backend/src/modules/admin/admin.controller.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import { Controller, Get, Param } from '@nestjs/common';
|
||||||
|
import { ApiOperation, ApiTags } from '@nestjs/swagger';
|
||||||
|
import { AdminService } from './admin.service';
|
||||||
|
|
||||||
|
@ApiTags('Admin')
|
||||||
|
@Controller('Admin')
|
||||||
|
export class AdminController {
|
||||||
|
constructor(private adminService: AdminService) {}
|
||||||
|
|
||||||
|
@ApiOperation({
|
||||||
|
description: 'Get admins from db',
|
||||||
|
})
|
||||||
|
@Get('get')
|
||||||
|
async getAdmin() {
|
||||||
|
return await this.adminService.getAdmins();
|
||||||
|
}
|
||||||
|
@ApiOperation({ description: 'Check admin is or not' })
|
||||||
|
@Get('is_admin/:id')
|
||||||
|
async isAdmin(@Param('id') id: string) {
|
||||||
|
return await this.adminService.checkIsAdmin(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
11
backend/src/modules/admin/admin.module.ts
Normal file
11
backend/src/modules/admin/admin.module.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
import { Module } from '@nestjs/common';
|
||||||
|
import { LibsModule } from 'libs/libs.module';
|
||||||
|
import { AdminController } from './admin.controller';
|
||||||
|
import { AdminService } from './admin.service';
|
||||||
|
|
||||||
|
@Module({
|
||||||
|
imports: [LibsModule],
|
||||||
|
controllers: [AdminController],
|
||||||
|
providers: [AdminService],
|
||||||
|
})
|
||||||
|
export class AdminModule {}
|
||||||
34
backend/src/modules/admin/admin.service.ts
Normal file
34
backend/src/modules/admin/admin.service.ts
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
import { Injectable, Logger } from '@nestjs/common';
|
||||||
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
|
import { Repository } from 'typeorm';
|
||||||
|
import { Admin } from 'libs/database/admin.entity';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class AdminService {
|
||||||
|
private readonly logger: Logger = new Logger(AdminService.name);
|
||||||
|
constructor(@InjectRepository(Admin) private adminRepository: Repository<Admin>) {}
|
||||||
|
|
||||||
|
async getAdmins() {
|
||||||
|
try {
|
||||||
|
this.logger.debug(`[admin.getAdmins]`);
|
||||||
|
const admins = await this.adminRepository.find();
|
||||||
|
return admins;
|
||||||
|
} catch (error) {
|
||||||
|
this.logger.log(`[getAdmin] ${JSON.stringify({ error })}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
async checkIsAdmin(id: string) {
|
||||||
|
try {
|
||||||
|
this.logger.debug(`[admin.checkIsAdmin]`);
|
||||||
|
const admins = await this.adminRepository.findOne({
|
||||||
|
where: { id: id },
|
||||||
|
});
|
||||||
|
if (!admins) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
} catch (error) {
|
||||||
|
this.logger.log(`[checkIsAdmin] ${JSON.stringify({ error })}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
|
import { Admin } from 'libs/database/admin.entity';
|
||||||
import { User } from 'libs/database/user.entity';
|
import { User } from 'libs/database/user.entity';
|
||||||
import { Repository } from 'typeorm';
|
import { Repository } from 'typeorm';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class AppInitService implements OnModuleInit {
|
export class AppInitService implements OnModuleInit {
|
||||||
constructor(@InjectRepository(User) private userRepository: Repository<User>) {}
|
constructor(
|
||||||
|
@InjectRepository(User) private userRepository: Repository<User>,
|
||||||
|
@InjectRepository(Admin) private adminRepository: Repository<Admin>,
|
||||||
|
) {}
|
||||||
|
|
||||||
async onModuleInit() {}
|
async onModuleInit() {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user