1- import CourseRepository from '../domain/CourseRepository' ;
2- import Course from '../domain/Course' ;
3- import { CourseId } from '../domain/CourseId' ;
1+ import { CourseRepository } from '../domain/CourseRepository' ;
2+ import { Course } from '../domain/Course' ;
3+ import { CreateCourseRequest } from './CreateCourseRequest' ;
4+ import { CourseId } from '../../Shared/domain/Courses/CourseId' ;
45import { CourseName } from '../domain/CourseName' ;
56import { CourseDuration } from '../domain/CourseDuration' ;
67import { EventBus } from '../../../Shared/domain/EventBus' ;
78
8- export default class CourseCreator {
9+ export class CourseCreator {
910 private repository : CourseRepository ;
1011 private eventBus : EventBus ;
1112
@@ -14,8 +15,12 @@ export default class CourseCreator {
1415 this . eventBus = eventBus ;
1516 }
1617
17- async run ( id : CourseId , name : CourseName , duration : CourseDuration ) : Promise < void > {
18- const course = new Course ( id , name , duration ) ;
18+ async run ( request : CreateCourseRequest ) : Promise < void > {
19+ const course = new Course (
20+ new CourseId ( request . id ) ,
21+ new CourseName ( request . name ) ,
22+ new CourseDuration ( request . duration )
23+ ) ;
1924
2025 await this . repository . save ( course ) ;
2126
0 commit comments