Passed
Pull Request — master (#75)
by Mathieu
01:46
created

server/src/Application/FairCalendar/Command/AbstractProjectAndTaskGetter.ts   A

Complexity

Total Complexity 6
Complexity/F 3

Size

Lines of Code 40
Function Count 2

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 32
mnd 4
bc 4
fnc 2
dl 0
loc 40
rs 10
bpm 2
cpm 3
noi 0
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A AbstractProjectAndTaskGetter.getProject 0 12 3
A AbstractProjectAndTaskGetter.getTask 0 12 3
1
import {Task} from 'src/Domain/Task/Task.entity';
2
import {Project} from 'src/Domain/Project/Project.entity';
3
import {ITaskRepository} from 'src/Domain/Task/Repository/ITaskRepository';
4
import {IProjectRepository} from 'src/Domain/Project/Repository/IProjectRepository';
5
import {TaskNotFoundException} from 'src/Domain/Task/Exception/TaskNotFoundException';
6
import {ProjectNotFoundException} from 'src/Domain/Project/Exception/ProjectNotFoundException';
7
8
export abstract class AbstractProjectAndTaskGetter {
9
  constructor(
10
    private readonly taskRepository: ITaskRepository,
11
    private readonly projectRepository: IProjectRepository
12
  ) {}
13
14
  protected async getTask(taskId?: string): Promise<Task | null> {
15
    if (!taskId) {
16
      return null;
17
    }
18
19
    const task = await this.taskRepository.findOneById(taskId);
20
    if (!task) {
21
      throw new TaskNotFoundException();
22
    }
23
24
    return task;
25
  }
26
27
  protected async getProject(projectId?: string): Promise<Project | null> {
28
    if (!projectId) {
29
      return null;
30
    }
31
32
    const project = await this.projectRepository.findOneById(projectId);
33
    if (!project) {
34
      throw new ProjectNotFoundException();
35
    }
36
37
    return project;
38
  }
39
}
40