package com.nvarghese.beowulf.common.scan.dao; import org.bson.types.ObjectId; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.code.morphia.Datastore; import com.google.code.morphia.Key; import com.google.code.morphia.query.UpdateOperations; import com.nvarghese.beowulf.common.dao.AbstractMongoDAO; import com.nvarghese.beowulf.common.scan.model.WebScanDocument; public class WebScanDAO extends AbstractMongoDAO<WebScanDocument, ObjectId> { static Logger logger = LoggerFactory.getLogger(WebScanDAO.class); public WebScanDAO(Datastore ds) { super(WebScanDocument.class, ds); } /** * * @param objectId * @return */ public WebScanDocument getWebScanDocument(ObjectId objectId) { WebScanDocument webScanDocument = get(objectId); return webScanDocument; } /** * * @param objectId * @return */ public WebScanDocument getWebScanDocument(String objectId) { ObjectId id = new ObjectId(objectId); WebScanDocument webScanDocument = get(id); return webScanDocument; } /** * * @param webScanDocument */ public void updateWebScanDocument(WebScanDocument webScanDocument) { logger.debug("Updating webscandocument with id: {}", webScanDocument.getId()); save(webScanDocument); } /** * * Create a new web scan document * * @param webScanDocument */ public ObjectId createWebScanDocument(WebScanDocument webScanDocument) { logger.debug("Creating new webscandocument."); Key<WebScanDocument> key = save(webScanDocument); return (ObjectId) key.getId(); } /** * * @param webScanObjectId * @param scanJobsInProgress */ public void updateScanJobsInProgress(ObjectId webScanObjectId, boolean scanJobsInProgress) { UpdateOperations<WebScanDocument> ops = ds.createUpdateOperations(WebScanDocument.class).set("scanJobsInProgress", scanJobsInProgress); ds.update(ds.createQuery(WebScanDocument.class).field("id").equal(webScanObjectId), ops); } /** * * @param webScanObjectId * @param scanRunning */ public void updateScanRunning(ObjectId webScanObjectId, boolean scanRunning) { UpdateOperations<WebScanDocument> ops = ds.createUpdateOperations(WebScanDocument.class).set("scanRunning", scanRunning); ds.update(ds.createQuery(WebScanDocument.class).field("id").equal(webScanObjectId), ops); } /** * * @param webScanObjectId * @param scanRunning */ public void updateScanPhase(ObjectId webScanObjectId, String scanPhase) { UpdateOperations<WebScanDocument> ops = ds.createUpdateOperations(WebScanDocument.class).set("scanPhase", scanPhase); ds.update(ds.createQuery(WebScanDocument.class).field("id").equal(webScanObjectId), ops); } }