def deleteAtom()

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)
        }
      }
    }
  }