25 lines
710 B
TypeScript
25 lines
710 B
TypeScript
|
import type { Habit } from "../entities/Habit"
|
||
|
import type { HabitEditRepository } from "../repositories/HabitEdit"
|
||
|
|
||
|
export interface HabitStopUseCaseDependencyOptions {
|
||
|
habitEditRepository: HabitEditRepository
|
||
|
}
|
||
|
|
||
|
export class HabitStopUseCase implements HabitStopUseCaseDependencyOptions {
|
||
|
public habitEditRepository: HabitEditRepository
|
||
|
|
||
|
public constructor(options: HabitStopUseCaseDependencyOptions) {
|
||
|
this.habitEditRepository = options.habitEditRepository
|
||
|
}
|
||
|
|
||
|
public async execute(habitToStop: Habit): Promise<Habit> {
|
||
|
const habit = await this.habitEditRepository.execute({
|
||
|
habitEditData: {
|
||
|
...habitToStop,
|
||
|
endDate: new Date(),
|
||
|
},
|
||
|
})
|
||
|
return habit
|
||
|
}
|
||
|
}
|