Model Struktur

This commit is contained in:
Bastian Wagner
2024-09-11 10:11:24 +02:00
parent 5d72978d1e
commit 00c26e1fa1
23 changed files with 56 additions and 67 deletions

View File

@@ -1,6 +1,6 @@
import { Body, Controller, Get, Post } from '@nestjs/common';
import { User } from 'src/model';
import { LoginUserDto } from 'src/model/dto';
import { User } from 'src/model/user.entity';
import { UsersService } from 'src/users/users.service';
@Controller('app')

View File

@@ -10,11 +10,9 @@ import {
} from '@nestjs/common';
import { UserService } from './user.service';
import { AuthGuard, Roles, RolesGuard } from 'src/core/secure/guards';
import { Client } from 'src/model/client.entity';
import { AuthenticatedRequest } from 'src/model';
import { AuthenticatedRequest, Client, RedirectUri } from 'src/model';
import { CreateClientDto } from 'src/model/dto/create-client.dto';
import { ClientService } from 'src/client/client.service';
import { RedirectUri } from 'src/model/redirect-uri.entity';
@UseGuards(AuthGuard, RolesGuard)
@Controller('app/user')

View File

@@ -1,7 +1,5 @@
import { Injectable } from '@nestjs/common';
import { Client, ClientRepository } from 'src/model/client.entity';
import { LogRepository } from 'src/model/log.entity';
import { User } from 'src/model/user.entity';
import { ClientRepository, LogRepository, User, Client } from 'src/model';
@Injectable()
export class UserService {

View File

@@ -2,10 +2,10 @@ import { Body, Controller, Get, Post, Query } from '@nestjs/common';
import { UsersService } from 'src/users/users.service';
import { ClientService } from 'src/client/client.service';
import { FormDataRequest } from 'nestjs-form-data';
import { Client } from 'src/model/client.entity';
import { CustomLogger } from 'src/core/custom.logger';
import { CreateUserDto } from 'src/model/dto/create-user.dto';
import { RequestResetPwDto, ResetPWDto } from 'src/model/dto';
import { Client } from 'src/model';
@Controller('auth')
export class AuthController {

View File

@@ -4,31 +4,13 @@ import { UsersService } from 'src/users/users.service';
import { ClientService } from 'src/client/client.service';
import { JwtModule } from '@nestjs/jwt';
import { NestjsFormDataModule } from 'nestjs-form-data';
import { User, UserRepository } from 'src/model/user.entity';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Client, ClientRepository } from 'src/model/client.entity';
import { RedirectUri } from 'src/model/redirect-uri.entity';
import {
AuthorizationCode,
AuthorizationCodeRepository,
} from 'src/model/auth-code.entity';
import { LoggerModule } from 'src/core/logger.module';
import { SessionKey, SessionKeyRepository } from 'src/model/session-key.entity';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { Role, RoleRepository } from 'src/model/role.entity';
import { DatabaseModule } from 'src/core/database/database.module';
import { MailModule } from 'src/application/mail/mail.module';
@Module({
providers: [
UsersService,
ClientService,
UserRepository,
ClientRepository,
AuthorizationCodeRepository,
SessionKeyRepository,
RoleRepository,
],
providers: [UsersService, ClientService],
controllers: [AuthController],
imports: [
JwtModule.registerAsync({
@@ -40,14 +22,6 @@ import { MailModule } from 'src/application/mail/mail.module';
}),
}),
NestjsFormDataModule,
TypeOrmModule.forFeature([
User,
Client,
RedirectUri,
AuthorizationCode,
SessionKey,
Role,
]),
LoggerModule,
DatabaseModule,
MailModule,

View File

@@ -1,8 +1,12 @@
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import {
ClientRepository,
RedirectRepository,
User,
Client,
RedirectUri,
} from 'src/model';
import { v4 as uuidv4 } from 'uuid';
import { Client, ClientRepository } from 'src/model/client.entity';
import { RedirectRepository, RedirectUri } from 'src/model/redirect-uri.entity';
import { User } from 'src/model/user.entity';
@Injectable()
export class ClientService {

View File

@@ -1,7 +1,7 @@
import { LoggerService, Injectable, Logger } from '@nestjs/common';
import { ConfigService } from '@nestjs/config';
import { InjectRepository } from '@nestjs/typeorm';
import { Log, LOGMESSAGETYPE } from 'src/model/log.entity';
import { Log, LOGMESSAGETYPE } from 'src/model';
import { Repository } from 'typeorm';
@Injectable()

View File

@@ -1,18 +1,27 @@
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import {
User,
Client,
RedirectUri,
SessionKey,
Log,
ResetPwCode,
UserRepository,
ClientRepository,
SessionKeyRepository,
RedirectRepository,
LogRepository,
ResetPwCodeRepository,
AuthorizationCode,
AuthorizationCodeRepository,
} from 'src/model/auth-code.entity';
import { Client, ClientRepository } from 'src/model/client.entity';
import { Log, LogRepository } from 'src/model/log.entity';
import { RedirectRepository, RedirectUri } from 'src/model/redirect-uri.entity';
import { ResetPwCode, ResetPwCodeRepository } from 'src/model/reset-pw.entity';
import { SessionKey, SessionKeyRepository } from 'src/model/session-key.entity';
import { User, UserRepository } from 'src/model/user.entity';
Role,
RoleRepository,
} from 'src/model';
const ENTITIES = [
User,
Role,
Client,
RedirectUri,
AuthorizationCode,
@@ -28,12 +37,13 @@ const REPOSITORIES = [
RedirectRepository,
LogRepository,
ResetPwCodeRepository,
RoleRepository,
];
@Module({
imports: [TypeOrmModule.forFeature(ENTITIES)],
controllers: [],
providers: [...REPOSITORIES],
exports: [...REPOSITORIES],
exports: [...REPOSITORIES, TypeOrmModule],
})
export class DatabaseModule {}

View File

@@ -1,13 +1,11 @@
import { Module } from '@nestjs/common';
import { Log } from 'src/model/log.entity';
import { CustomLogger } from './custom.logger';
import { TypeOrmModule } from '@nestjs/typeorm';
import { DatabaseModule } from './database/database.module';
@Module({
providers: [CustomLogger],
controllers: [],
imports: [TypeOrmModule.forFeature([Log]), DatabaseModule],
imports: [DatabaseModule],
exports: [CustomLogger],
})
export class LoggerModule {}

View File

@@ -1,6 +1,6 @@
import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { User } from 'src/model/user.entity';
import { User } from 'src/model';
@Injectable()
export class RolesGuard implements CanActivate {

View File

@@ -5,9 +5,8 @@ import {
PrimaryColumn,
Repository,
} from 'typeorm';
import { Client } from './client.entity';
import { User } from './user.entity';
import { Injectable } from '@nestjs/common';
import { Client, User } from './';
@Entity()
export class AuthorizationCode {

View File

@@ -11,9 +11,7 @@ import {
JoinTable,
CreateDateColumn,
} from 'typeorm';
import { RedirectUri } from './redirect-uri.entity';
import { AuthorizationCode } from './auth-code.entity';
import { User } from './user.entity';
import { AuthorizationCode, RedirectUri, User } from '.';
@Entity()
export class Client {

View File

@@ -0,0 +1,8 @@
export * from './client.entity';
export * from './log.entity';
export * from './redirect-uri.entity';
export * from './reset-pw.entity';
export * from './role.entity';
export * from './session-key.entity';
export * from './user.entity';
export * from './auth-code.entity';

View File

@@ -1 +1,2 @@
export * from './interface';
export * from './entity';

View File

@@ -1,4 +1,4 @@
import { User } from '../user.entity';
import { User } from '../entity';
export interface AuthenticatedRequest extends Request {
user: User;

View File

@@ -1,20 +1,21 @@
import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
import { User, UserRepository } from 'src/model/user.entity';
import { v4 as uuidv4 } from 'uuid';
import * as bcrypt from 'bcrypt';
import { ClientService } from 'src/client/client.service';
import {
AuthorizationCode,
AuthorizationCodeRepository,
} from 'src/model/auth-code.entity';
import { JwtService } from '@nestjs/jwt';
import { CustomLogger } from 'src/core/custom.logger';
import { CreateUserDto } from 'src/model/dto/create-user.dto';
import { SessionKeyRepository } from 'src/model/session-key.entity';
import { Client } from 'src/model/client.entity';
import { LoginUserDto, RequestResetPwDto, ResetPWDto } from 'src/model/dto';
import { ResetPwCodeRepository } from 'src/model/reset-pw.entity';
import { MailService } from 'src/application/mail/mail.service';
import {
UserRepository,
SessionKeyRepository,
ResetPwCodeRepository,
User,
Client,
AuthorizationCodeRepository,
AuthorizationCode,
} from 'src/model';
@Injectable()
export class UsersService {