Passed
Pull Request — master (#87)
by Mathieu
01:49
created

server/src/Application/File/Command/UploadFileCommandHandler.ts   A

Complexity

Total Complexity 1
Complexity/F 1

Size

Lines of Code 28
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 1
eloc 24
mnd 0
bc 0
fnc 1
dl 0
loc 28
rs 10
bpm 0
cpm 1
noi 0
c 0
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
A UploadFileCommandHandler.execute 0 10 1
1
import {CommandHandler} from '@nestjs/cqrs';
2
import {Inject} from '@nestjs/common';
3
import {UploadFileCommand} from './UploadFileCommand';
4
import {IFileStorage} from 'src/Application/IFileStorage';
5
import {IFileRepository} from 'src/Domain/File/Repository/IFileRepository';
6
import {File} from 'src/Domain/File/File.entity';
7
8
@CommandHandler(UploadFileCommand)
9
export class UploadFileCommandHandler {
10
  constructor(
11
    @Inject('IFileStorage')
12
    public readonly fileStorage: IFileStorage,
13
    @Inject('IFileRepository')
14
    public readonly fileRepository: IFileRepository
15
  ) {}
16
17
  public async execute(command: UploadFileCommand): Promise<string> {
18
    const {uploadedFile} = command;
19
20
    const fileName = await this.fileStorage.upload(uploadedFile);
21
    const file = await this.fileRepository.save(
22
      new File(fileName, uploadedFile.size, uploadedFile.mimetype)
23
    );
24
25
    return file.getId();
26
  }
27
}
28