package testapp.endpoint;
import act.app.DbServiceManager;
import act.controller.Controller;
import act.db.morphia.MorphiaService;
import act.util.PropertySpec;
import org.osgl.mvc.annotation.DeleteAction;
import org.osgl.mvc.annotation.GetAction;
import org.osgl.mvc.annotation.PostAction;
import org.osgl.util.E;
import testapp.model.mongo.Person;
import javax.inject.Inject;
public class MorphiaTestBed extends Controller.Util {
@Inject
Person.Dao personDao;
@DeleteAction("/morphia")
public void cleanDb(DbServiceManager dbServiceManager) {
MorphiaService svc = dbServiceManager.dbService(DbServiceManager.DEFAULT);
svc.ds().getDB().dropDatabase();
}
@PostAction("/morphia/person")
@PropertySpec("-photo")
public void createPerson(Person person) {
E.illegalStateIf(personDao.exists(person.getName()));
personDao.save(person);
}
@GetAction("/morphia/person/{name}")
public Person findPerson(String name) {
return personDao.findOneBy("name", name);
}
}