reorganize
This commit is contained in:
parent
754debbcf8
commit
34d805969f
|
@ -1,12 +1,12 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { AuthModule } from './auth/auth.module';
|
||||
import { UserEntity } from './users/user.entity';
|
||||
import { UsersModule } from './users/users.module';
|
||||
import { RootModule } from './root/root.module';
|
||||
import { AuthModule } from './routes/auth/auth.module';
|
||||
import { UserEntity } from './collections/userdb/user.entity';
|
||||
import { UsersModule } from './collections/userdb/userdb.module';
|
||||
import { ImageModule } from './routes/image/imageroute.module';
|
||||
import Config from './env';
|
||||
import { ImageEntity } from './images/image.entity';
|
||||
import { SafeImagesModule } from './safeimages/safeimages.module';
|
||||
import { ImageEntity } from './collections/imagedb/image.entity';
|
||||
import { SafeImagesModule } from './lib/safeimages/safeimages.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
|
@ -23,7 +23,7 @@ import { SafeImagesModule } from './safeimages/safeimages.module';
|
|||
}),
|
||||
AuthModule,
|
||||
UsersModule,
|
||||
RootModule,
|
||||
ImageModule,
|
||||
SafeImagesModule,
|
||||
],
|
||||
})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Column, Entity, Index, PrimaryGeneratedColumn, Unique } from 'typeorm';
|
||||
import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
|
||||
import { SupportedMime, SupportedMimes } from './mimes.service';
|
||||
|
||||
@Entity()
|
|
@ -1,12 +1,12 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { ImageEntity } from './image.entity';
|
||||
import { ImagesService } from './images.service';
|
||||
import { ImageDBService } from './imagedb.service';
|
||||
import { MimesService } from './mimes.service';
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([ImageEntity])],
|
||||
providers: [ImagesService, MimesService],
|
||||
exports: [ImagesService, MimesService],
|
||||
providers: [ImageDBService, MimesService],
|
||||
exports: [ImageDBService, MimesService],
|
||||
})
|
||||
export class ImagesModule {}
|
||||
export class ImageDBModule {}
|
|
@ -3,11 +3,11 @@ import { InjectRepository } from '@nestjs/typeorm';
|
|||
import { Repository } from 'typeorm';
|
||||
import { ImageEntity } from './image.entity';
|
||||
import Crypto from 'crypto';
|
||||
import { AsyncFailable, Fail, HasFailed, HasSuccess } from 'src/lib/maybe';
|
||||
import { AsyncFailable, Fail, HasFailed, HasSuccess } from 'src/types/failable';
|
||||
import { SupportedMime } from './mimes.service';
|
||||
|
||||
@Injectable()
|
||||
export class ImagesService {
|
||||
export class ImageDBService {
|
||||
constructor(
|
||||
@InjectRepository(ImageEntity)
|
||||
private imageRepository: Repository<ImageEntity>,
|
|
@ -1,5 +1,5 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { Fail, Failable } from 'src/lib/maybe';
|
||||
import { Fail, Failable } from 'src/types/failable';
|
||||
|
||||
const tuple = <T extends string[]>(...args: T): T => args;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { UserEntity } from './user.entity';
|
||||
import { UsersService } from './users.service';
|
||||
import { UsersService } from './userdb.service';
|
||||
|
||||
@Module({
|
||||
imports: [TypeOrmModule.forFeature([UserEntity])],
|
|
@ -1,12 +1,6 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import {
|
||||
AsyncFailable,
|
||||
Fail,
|
||||
Failure,
|
||||
HasFailed,
|
||||
HasSuccess,
|
||||
} from 'src/lib/maybe';
|
||||
import { AsyncFailable, Fail, HasFailed, HasSuccess } from 'src/types/failable';
|
||||
import { Repository } from 'typeorm';
|
||||
import { UserEntity } from './user.entity';
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { ImagesModule } from 'src/images/images.module';
|
||||
import { ImageDBModule } from 'src/collections/imagedb/imagedb.module';
|
||||
import { SafeImagesService } from './safeimages.service';
|
||||
|
||||
@Module({
|
||||
imports: [ImagesModule],
|
||||
imports: [ImageDBModule],
|
||||
providers: [SafeImagesService],
|
||||
exports: [SafeImagesService],
|
||||
})
|
|
@ -1,20 +1,22 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { fileTypeFromBuffer } from 'file-type';
|
||||
import { ImageEntity } from 'src/images/image.entity';
|
||||
import { ImagesService } from 'src/images/images.service';
|
||||
import { FullMime, MimesService } from 'src/images/mimes.service';
|
||||
import { AsyncFailable, Fail, HasFailed } from 'src/lib/maybe';
|
||||
import { fileTypeFromBuffer, FileTypeResult } from 'file-type';
|
||||
import { ImageEntity } from 'src/collections/imagedb/image.entity';
|
||||
import { ImageDBService } from 'src/collections/imagedb/imagedb.service';
|
||||
import { FullMime, MimesService } from 'src/collections/imagedb/mimes.service';
|
||||
import { AsyncFailable, Fail, HasFailed } from 'src/types/failable';
|
||||
|
||||
@Injectable()
|
||||
export class SafeImagesService {
|
||||
constructor(
|
||||
private readonly imagesService: ImagesService,
|
||||
private readonly imagesService: ImageDBService,
|
||||
private readonly mimesService: MimesService,
|
||||
) {}
|
||||
|
||||
async uploadImage(image: Buffer): AsyncFailable<string> {
|
||||
const { mime } = await fileTypeFromBuffer(image);
|
||||
const fullMime = await this.mimesService.getFullMime(mime);
|
||||
const mime: FileTypeResult = await fileTypeFromBuffer(image);
|
||||
const fullMime = await this.mimesService.getFullMime(
|
||||
mime?.mime ?? 'extra/discard',
|
||||
);
|
||||
if (HasFailed(fullMime)) return fullMime;
|
||||
|
||||
const processedImage: Buffer = await this.processImage(image, fullMime);
|
|
@ -1,10 +0,0 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { ImagesModule } from 'src/images/images.module';
|
||||
import { SafeImagesModule } from 'src/safeimages/safeimages.module';
|
||||
import { RootController } from './root.controller';
|
||||
|
||||
@Module({
|
||||
imports: [SafeImagesModule],
|
||||
controllers: [RootController],
|
||||
})
|
||||
export class RootModule {}
|
|
@ -6,7 +6,7 @@ import {
|
|||
} from '@nestjs/common';
|
||||
import { plainToClass } from 'class-transformer';
|
||||
import { validate } from 'class-validator';
|
||||
import { User } from 'src/users/user.dto';
|
||||
import { User } from 'src/collections/userdb/user.dto';
|
||||
|
||||
@Injectable()
|
||||
export class AdminGuard implements CanActivate {
|
|
@ -18,7 +18,7 @@ import {
|
|||
import { AuthService } from './auth.service';
|
||||
import { JwtAuthGuard } from './jwt.guard';
|
||||
import { AdminGuard } from './admin.guard';
|
||||
import { HasFailed } from 'src/lib/maybe';
|
||||
import { HasFailed } from 'src/types/failable';
|
||||
|
||||
@Controller('auth')
|
||||
export class AuthController {
|
|
@ -5,7 +5,7 @@ import {
|
|||
IsString,
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
import { User } from 'src/users/user.dto';
|
||||
import { User } from 'src/collections/userdb/user.dto';
|
||||
|
||||
export class LoginResponseDto {
|
||||
@IsString()
|
|
@ -1,6 +1,6 @@
|
|||
import { Logger, Module, OnModuleInit } from '@nestjs/common';
|
||||
import { PassportModule } from '@nestjs/passport';
|
||||
import { UsersModule } from 'src/users/users.module';
|
||||
import { UsersModule } from 'src/collections/userdb/userdb.module';
|
||||
import { AuthService } from './auth.service';
|
||||
import { LocalStrategy } from './local.strategy';
|
||||
import { AuthController } from './auth.controller';
|
|
@ -1,10 +1,10 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { JwtService } from '@nestjs/jwt';
|
||||
import * as bcrypt from 'bcrypt';
|
||||
import { AsyncFailable, Fail, HasFailed } from 'src/lib/maybe';
|
||||
import { User } from 'src/users/user.dto';
|
||||
import { UserEntity } from 'src/users/user.entity';
|
||||
import { UsersService } from 'src/users/users.service';
|
||||
import { AsyncFailable, Fail, HasFailed } from 'src/types/failable';
|
||||
import { User } from 'src/collections/userdb/user.dto';
|
||||
import { UserEntity } from 'src/collections/userdb/user.entity';
|
||||
import { UsersService } from 'src/collections/userdb/userdb.service';
|
||||
import { JwtDataDto } from './auth.dto';
|
||||
|
||||
@Injectable()
|
|
@ -5,7 +5,7 @@ import Config from 'src/env';
|
|||
import { validate } from 'class-validator';
|
||||
import { JwtDataDto } from './auth.dto';
|
||||
import { plainToClass } from 'class-transformer';
|
||||
import { User } from 'src/users/user.dto';
|
||||
import { User } from 'src/collections/userdb/user.dto';
|
||||
|
||||
@Injectable()
|
||||
export class JwtStrategy extends PassportStrategy(Strategy) {
|
|
@ -2,8 +2,8 @@ import { Strategy } from 'passport-local';
|
|||
import { PassportStrategy } from '@nestjs/passport';
|
||||
import { Injectable, UnauthorizedException } from '@nestjs/common';
|
||||
import { AuthService } from './auth.service';
|
||||
import { AsyncFailable, HasFailed } from 'src/lib/maybe';
|
||||
import { UserEntity } from 'src/users/user.entity';
|
||||
import { AsyncFailable, HasFailed } from 'src/types/failable';
|
||||
import { UserEntity } from 'src/collections/userdb/user.entity';
|
||||
|
||||
@Injectable()
|
||||
export class LocalStrategy extends PassportStrategy(Strategy) {
|
|
@ -1,6 +1,5 @@
|
|||
import {
|
||||
BadRequestException,
|
||||
Body,
|
||||
Controller,
|
||||
Get,
|
||||
InternalServerErrorException,
|
||||
|
@ -9,17 +8,14 @@ import {
|
|||
Post,
|
||||
Req,
|
||||
Res,
|
||||
UploadedFile,
|
||||
UseInterceptors,
|
||||
} from '@nestjs/common';
|
||||
import { isArray } from 'class-validator';
|
||||
import { FastifyReply, FastifyRequest } from 'fastify';
|
||||
import { Multipart, MultipartFields, MultipartFile } from 'fastify-multipart';
|
||||
import { HasFailed } from 'src/lib/maybe';
|
||||
import { SafeImagesService } from 'src/safeimages/safeimages.service';
|
||||
import { Multipart } from 'fastify-multipart';
|
||||
import { HasFailed } from 'src/types/failable';
|
||||
import { SafeImagesService } from 'src/lib/safeimages/safeimages.service';
|
||||
|
||||
@Controller()
|
||||
export class RootController {
|
||||
export class ImageController {
|
||||
constructor(private readonly imagesService: SafeImagesService) {}
|
||||
|
||||
@Get('i/:hash')
|
9
src/routes/image/imageroute.module.ts
Normal file
9
src/routes/image/imageroute.module.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { Module } from '@nestjs/common';
|
||||
import { SafeImagesModule } from 'src/lib/safeimages/safeimages.module';
|
||||
import { ImageController } from './imageroute.controller';
|
||||
|
||||
@Module({
|
||||
imports: [SafeImagesModule],
|
||||
controllers: [ImageController],
|
||||
})
|
||||
export class ImageModule {}
|
Loading…
Reference in a new issue