in app/controllers/App.scala [159:183]
def deleteAtom(atomType: String, id: String) = AuthAction { req =>
APIResponse {
validateAtomType(atomType).flatMap { atomType =>
atomWorkshopDB.getAtom(publishedDataStore, atomType, id) match {
case Right(publishedAtom) =>
for {
_ <- takedown(atomType, id, req.user)
_ <- atomWorkshopDB.deleteAtom(previewDataStore, atomType, id)
_ <- atomPublishers.sendKinesisEvent(publishedAtom, previewAtomPublisher, EventType.Takedown)
} yield AtomWorkshopAPIResponse(s"Atom $atomType/$id taken down and deleted")
case Left(UnknownAtomError(_, _)) =>
atomWorkshopDB.getAtom(previewDataStore, atomType, id).flatMap { unpublishedAtom =>
for {
_ <- atomWorkshopDB.deleteAtom(previewDataStore, atomType, id)
_ <- atomPublishers.sendKinesisEvent(unpublishedAtom, previewAtomPublisher, EventType.Takedown)
} yield AtomWorkshopAPIResponse(s"Atom $atomType/$id deleted")
}
case Left(err) =>
Left(err)
}
}
}
}