33mod app;
44mod output;
55
6- use output:: { ErrorData , Kind , Output , OutputResult , Status } ;
6+ use output:: { CombinedCourseData , ErrorData , Kind , Output , OutputResult , Status } ;
77
88use anyhow:: { Context , Result } ;
99use clap:: { ArgMatches , Error , ErrorKind } ;
@@ -604,11 +604,37 @@ fn run_core(matches: &ArgMatches) -> Result<PrintToken> {
604604 } ;
605605 print_output ( & output) ?
606606 }
607+ ( "get-course-data" , Some ( matches) ) => {
608+ let course_id = matches. value_of ( "course-id" ) . unwrap ( ) ;
609+ let course_id = into_usize ( course_id) ?;
610+
611+ let details = core
612+ . get_course_details ( course_id)
613+ . context ( "Failed to get course details" ) ?;
614+ let exercises = core
615+ . get_course_exercises ( course_id)
616+ . context ( "Failed to get course" ) ?;
617+ let settings = core. get_course ( course_id) . context ( "Failed to get course" ) ?;
618+ let data = CombinedCourseData {
619+ details,
620+ exercises,
621+ settings,
622+ } ;
623+
624+ let output = Output {
625+ status : Status :: Finished ,
626+ message : None ,
627+ result : OutputResult :: RetrievedData ,
628+ percent_done : 1.0 ,
629+ data : Some ( data) ,
630+ } ;
631+ print_output ( & output) ?
632+ }
607633 ( "get-course-details" , Some ( matches) ) => {
608634 let course_id = matches. value_of ( "course-id" ) . unwrap ( ) ;
609635 let course_id = into_usize ( course_id) ?;
610636
611- let course_details = core
637+ let details = core
612638 . get_course_details ( course_id)
613639 . context ( "Failed to get course details" ) ?;
614640
@@ -617,15 +643,15 @@ fn run_core(matches: &ArgMatches) -> Result<PrintToken> {
617643 message : None ,
618644 result : OutputResult :: RetrievedData ,
619645 percent_done : 1.0 ,
620- data : Some ( course_details ) ,
646+ data : Some ( details ) ,
621647 } ;
622648 print_output ( & output) ?
623649 }
624650 ( "get-course-exercises" , Some ( matches) ) => {
625651 let course_id = matches. value_of ( "course-id" ) . unwrap ( ) ;
626652 let course_id = into_usize ( course_id) ?;
627653
628- let course = core
654+ let exercises = core
629655 . get_course_exercises ( course_id)
630656 . context ( "Failed to get course" ) ?;
631657
@@ -634,22 +660,22 @@ fn run_core(matches: &ArgMatches) -> Result<PrintToken> {
634660 message : None ,
635661 result : OutputResult :: RetrievedData ,
636662 percent_done : 1.0 ,
637- data : Some ( course ) ,
663+ data : Some ( exercises ) ,
638664 } ;
639665 print_output ( & output) ?
640666 }
641667 ( "get-course-settings" , Some ( matches) ) => {
642668 let course_id = matches. value_of ( "course-id" ) . unwrap ( ) ;
643669 let course_id = into_usize ( course_id) ?;
644670
645- let course = core. get_course ( course_id) . context ( "Failed to get course" ) ?;
671+ let settings = core. get_course ( course_id) . context ( "Failed to get course" ) ?;
646672
647673 let output = Output {
648674 status : Status :: Finished ,
649675 message : None ,
650676 result : OutputResult :: RetrievedData ,
651677 percent_done : 1.0 ,
652- data : Some ( course ) ,
678+ data : Some ( settings ) ,
653679 } ;
654680 print_output ( & output) ?
655681 }
0 commit comments