@@ -228,8 +228,8 @@ def delete(service: RetrievalService, flaskExecutor: ExecutorInterface):
228228 start_time = time .monotonic ()
229229 # background execution of tasks!!
230230 flaskExecutor .submit (service .delete_data , course_name , s3_path , source_url )
231- print (f"From { course_name } , deleted file: { s3_path } " )
232- print (f"⏰ Runtime of FULL delete func: { (time .monotonic () - start_time ):.2f} seconds" )
231+ logging . info (f"From { course_name } , deleted file: { s3_path } " )
232+ logging . debug (f"⏰ Runtime of FULL delete func: { (time .monotonic () - start_time ):.2f} seconds" )
233233 # we need instant return. Delets are "best effort" assume always successful... sigh :(
234234 response = jsonify ({"outcome" : 'success' })
235235 response .headers .add ('Access-Control-Allow-Origin' , '*' )
@@ -744,28 +744,31 @@ def ingest() -> Response:
744744
745745 # TODO: Authentication?
746746
747- result = active_queue .addJobToIngestQueue (data )
748- logging .info ("Result from addJobToIngestQueue: %s" , result )
747+ job_id = active_queue .addJobToIngestQueue (data )
748+ logging .info ("Result from addJobToIngestQueue: %s" , job_id )
749749
750750 response = jsonify (
751751 {
752752 "outcome" : f'Queued Ingest task' ,
753- "task_id" : result
753+ "task_id" : job_id
754754 }
755755 )
756756 response .headers .add ('Access-Control-Allow-Origin' , '*' )
757757 return response
758758
759759@app .route ('/canvas_ingest' , methods = ['POST' ])
760- def canvas_ingest (request ) -> Response :
761- course_name : request .data .get ('course_name' , '' )
762- canvas_url : request .data .get ('canvas_url' , None )
763- files : bool = request .data .get ('files' , True )
764- pages : bool = request .data .get ('pages' , True )
765- modules : bool = request .data .get ('modules' , True )
766- syllabus : bool = request .data .get ('syllabus' , True )
767- assignments : bool = request .data .get ('assignments' , True )
768- discussions : bool = request .data .get ('discussions' , True )
760+ def canvas_ingest () -> Response :
761+ data = request .get_json ()
762+ logging .info ("Canvas ingest data: %s" , data )
763+
764+ course_name : str = data .get ('course_name' , '' )
765+ canvas_url : str = data .get ('canvas_url' , None )
766+ files : bool = data .get ('files' , True )
767+ pages : bool = data .get ('pages' , True )
768+ modules : bool = data .get ('modules' , True )
769+ syllabus : bool = data .get ('syllabus' , True )
770+ assignments : bool = data .get ('assignments' , True )
771+ discussions : bool = data .get ('discussions' , True )
769772 options = {
770773 'files' : str (files ).lower () == 'true' ,
771774 'pages' : str (pages ).lower () == 'true' ,
@@ -779,34 +782,37 @@ def canvas_ingest(request) -> Response:
779782 print ("Canvas URL: " , canvas_url )
780783 print ("Download Options: " , options )
781784
782- try :
783- # canvas.illinois.edu/courses/COURSE_CODE
784- match = re .search (r'canvas\.illinois\.edu/courses/([^/]+)' , canvas_url )
785- canvas_course_id = match .group (1 ) if match else None
786-
787- ingester = IngestCanvas ()
788- ingester .ingest_course_content (canvas_course_id = canvas_course_id ,
789- course_name = course_name ,
790- content_ingest_dict = options )
791- except :
792- print ("Error ingesting course content from Canvas." )
793- abort (500 , description = "Error ingesting course content from Canvas." )
794-
795- active_queue = Queue ()
796- data = request .get_json ()
797- logging .info ("Canvas ingest data: %s" , data )
785+ # canvas.illinois.edu/courses/COURSE_CODE
786+ match = re .search (r'canvas\.illinois\.edu/courses/([^/]+)' , canvas_url )
787+ canvas_course_id = match .group (1 ) if match else None
798788
799- result = active_queue .addJobToIngestQueue (data , queue_name = 'uiuc-chat-canvas' )
800- logging .info ("Result from addJobToIngestQueue: %s" , result )
789+ canvas_id = os .getenv ("CANVAS_ACCESS_TOKEN" , default = "" )
790+ if len (canvas_id ) == 0 :
791+ response = jsonify (message = f"CANVAS_ACCESS_TOKEN is not configured." )
792+ response .status_code = 500
793+ response .headers .add ('Access-Control-Allow-Origin' , '*' )
794+ return response
801795
802- response = jsonify (
803- {
804- "outcome" : f'Queued Canvas Ingest task' ,
805- "ingest_task_id" : result
806- }
807- )
808- response .headers .add ('Access-Control-Allow-Origin' , '*' )
809- return response
796+ try :
797+ ingester = IngestCanvas ()
798+ accept_status = ingester .auto_accept_enrollments (canvas_course_id )
799+ job_ids = ingester .ingest_course_content (canvas_course_id = canvas_course_id ,
800+ course_name = course_name ,
801+ content_ingest_dict = options )
802+
803+ response = jsonify (
804+ {
805+ "outcome" : f'Queued Canvas Ingest task' ,
806+ "ingest_task_ids" : job_ids
807+ }
808+ )
809+ response .headers .add ('Access-Control-Allow-Origin' , '*' )
810+ return response
811+ except Exception as e :
812+ response = jsonify (error = str (e ), message = f"Internal Server Error { e } " )
813+ response .status_code = 500
814+ response .headers .add ('Access-Control-Allow-Origin' , '*' )
815+ return response
810816
811817@app .route ('/createProject' , methods = ['POST' ])
812818def createProject (service : ProjectService , flaskExecutor : ExecutorInterface ) -> Response :
0 commit comments