in microservices/lms/src/services/section_service.py [0:0]
def verifiy_attachment(title ,original_coursework_dict,
copied_coursework_dict,lms_job_id):
"""
This function is verifies the attachment of coursework
It compares the original coursework dict and copid coursework dict
returns the missing attachments in list
"""
missing_attachments = set()
original_drive_files= set()
original_youtube_video= set()
original_link=set()
original_form=set()
lms_job = LmsJob.find_by_id(lms_job_id)
logs = lms_job.logs
try:
for attachment in original_coursework_dict[title]["materials"]:
if "driveFile" in attachment.keys():
original_drive_files.add(attachment["driveFile"]["driveFile"]["title"])
if "youtubeVideo" in attachment.keys():
original_youtube_video.add(attachment["youtubeVideo"]["title"])
if "link" in attachment.keys():
Logger.error(f"coursework{title} {attachment}")
if "title" in attachment["link"]:
original_link.add(attachment["link"]["title"])
else:
original_link.add(attachment["link"]["url"])
if "form" in attachment.keys():
original_form.add(attachment["form"]["title"])
copied_drive_files= set()
copied_youtube_video= set()
copied_link= set()
copied_form=set()
# if "materials" in copied_coursework_dict[title]:
for attachment in copied_coursework_dict[title]["materials"]:
if "driveFile" in attachment.keys():
copied_drive_files.add(attachment["driveFile"]["driveFile"]["title"])
if "youtubeVideo" in attachment.keys():
copied_youtube_video.add(attachment["youtubeVideo"]["title"])
if "link" in attachment.keys():
if "title" in attachment["link"]:
copied_link.add(attachment["link"]["title"])
else:
copied_link.add(attachment["link"]["url"])
if "form" in attachment.keys():
copied_form.add(attachment["form"]["title"])
missing_attachments = []
if original_drive_files != copied_drive_files:
missing_drive_files = original_drive_files - copied_drive_files
missing_attachments.extend(missing_drive_files)
if original_youtube_video !=copied_youtube_video:
missing_youtube_video = original_youtube_video - copied_youtube_video
missing_attachments.extend(missing_youtube_video)
if original_link != copied_link:
missing_link = original_link - copied_link
missing_attachments.extend(missing_link)
if original_form != copied_form:
missing_form = original_form - copied_form
missing_attachments.extend(missing_form)
return missing_attachments
except Exception as e:
error = traceback.format_exc().replace("\n", " ")
Logger.error(f"Error {title} in attachment -{error} {e}")
logs["errors"].append(f"Error {title} in attachment -{error}")
lms_job.logs =logs
lms_job.update()
return attachment