Skip to content

Instantly share code, notes, and snippets.

@penguinbroker
Last active August 29, 2015 14:18
Show Gist options
  • Save penguinbroker/1fde23ccf01adede6192 to your computer and use it in GitHub Desktop.
Save penguinbroker/1fde23ccf01adede6192 to your computer and use it in GitHub Desktop.
clean up missing lessonSlides
val decks = Await.result(ComponentRegistry.slideDeckDao.tableScan, 100.seconds)
val lpms = Await.result(ComponentRegistry.lessonPublishableMediaDao.tableScan, 100.seconds)
val lessonSlides = Await.result(ComponentRegistry.lessonSlideDao.tableScan, 100.seconds)
val slides = Await.result(ComponentRegistry.slideDao.tableScan, 100.seconds)
slides map { slide =>
decks find (_.id == Some(slide.slideDeckId)) map { deck =>
if (deck.publishableMediaId != slide.publishableMediaId) {
println("found broken slide: " + slide.id)
val updatedSlide = slide.copy(publishableMediaId = deck.publishableMediaId)
Await.result(ComponentRegistry.slideDao.update(updatedSlide), 100.seconds)
lpms filter (_.publishableMediaId == deck.publishableMediaId) map { lpm =>
val lessonSlide = lessonSlides find (ls => ls.lessonId == lpm.lessonId && Some(ls.slideId) == slide.id)
if (lessonSlide.isEmpty) {
val newLessonSlide = models.LessonSlide(lpm.lessonId, slide.getIdOrFail, slide.slideDeckId, slide.institutionId)
Await.result(ComponentRegistry.lessonSlideService.create(newLessonSlide), 100.seconds)
}
}
Thread.sleep(50)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment