Search in sources :

Example 11 with Timed

use of org.activityinfo.server.util.monitoring.Timed in project activityinfo by bedatadriven.

the class AdminLevelResource method postNewLevel.

@POST
@Timed(name = "site.rest.admin.child_levels")
@Path("/childLevels")
@Consumes(MediaType.APPLICATION_JSON)
public Response postNewLevel(@InjectParam EntityManager em, @InjectParam AuthenticatedUser user, NewAdminLevel newLevel) throws ParseException {
    assertAuthorized(user);
    em.getTransaction().begin();
    em.setFlushMode(FlushModeType.COMMIT);
    AdminLevel child = new AdminLevel();
    child.setCountry(level.getCountry());
    child.setName(newLevel.getName());
    child.setParent(level);
    em.persist(child);
    for (NewAdminEntity entity : newLevel.getEntities()) {
        AdminEntity childEntity = new AdminEntity();
        childEntity.setName(entity.getName());
        childEntity.setLevel(child);
        childEntity.setCode(entity.getCode());
        childEntity.setBounds(entity.getBounds());
        childEntity.setParent(em.getReference(AdminEntity.class, entity.getParentId()));
        childEntity.setGeometry(entity.getGeometry());
        child.getEntities().add(childEntity);
        em.persist(childEntity);
    }
    // create bound location type
    LocationType boundType = new LocationType();
    boundType.setBoundAdminLevel(child);
    boundType.setCountry(level.getCountry());
    boundType.setName(child.getName());
    em.persist(boundType);
    em.getTransaction().commit();
    return Response.ok().build();
}
Also used : NewAdminEntity(org.activityinfo.server.endpoint.rest.model.NewAdminEntity) AdminEntity(org.activityinfo.server.database.hibernate.entity.AdminEntity) AdminLevel(org.activityinfo.server.database.hibernate.entity.AdminLevel) NewAdminLevel(org.activityinfo.server.endpoint.rest.model.NewAdminLevel) NewAdminEntity(org.activityinfo.server.endpoint.rest.model.NewAdminEntity) LocationType(org.activityinfo.server.database.hibernate.entity.LocationType) Timed(org.activityinfo.server.util.monitoring.Timed)

Example 12 with Timed

use of org.activityinfo.server.util.monitoring.Timed in project activityinfo by bedatadriven.

the class ExportSitesTask method doPost.

@Override
@Timed(name = "export", kind = "sites")
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    String exportId = req.getParameter("exportId");
    String locale = req.getParameter("locale");
    if (Strings.isNullOrEmpty(locale)) {
        locale = Locale.ENGLISH.toLanguageTag();
    }
    // authenticate this task
    authProvider.set(new AuthenticatedUser("", Integer.parseInt(req.getParameter("userId")), req.getParameter("userEmail")));
    ThreadLocalLocaleProvider.pushLocale(Locale.forLanguageTag(locale));
    try {
        // create the workbook
        Filter filter = FilterUrlSerializer.fromQueryParameter(req.getParameter("filter"));
        TaskContext context = new TaskContext(dispatcher.get(), storageProvider, exportId);
        SiteExporter export = new SiteExporter(context).buildExcelWorkbook(filter);
        // Save to Export storage
        GeneratedResource storage = storageProvider.get(exportId);
        try (OutputStream out = storage.openOutputStream()) {
            export.getBook().write(out);
        }
    } finally {
        ThreadLocalLocaleProvider.popLocale();
    }
}
Also used : Filter(org.activityinfo.legacy.shared.command.Filter) OutputStream(java.io.OutputStream) GeneratedResource(org.activityinfo.server.generated.GeneratedResource) AuthenticatedUser(org.activityinfo.legacy.shared.AuthenticatedUser) Timed(org.activityinfo.server.util.monitoring.Timed)

Example 13 with Timed

use of org.activityinfo.server.util.monitoring.Timed in project activityinfo by bedatadriven.

the class ExportUsersServlet method doGet.

@Override
@Timed(name = "export", kind = "users")
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    int dbId = Integer.valueOf(req.getParameter("dbUsers"));
    UserResult userResult = dispatcher.execute(new GetUsers(dbId));
    DbUserExport export = new DbUserExport(userResult.getData());
    export.createSheet();
    resp.setContentType("application/vnd.ms-excel");
    if (req.getHeader("User-Agent").contains("MSIE")) {
        resp.addHeader("Content-Disposition", "attachment; filename=ActivityInfo.xls");
    } else {
        resp.addHeader("Content-Disposition", "attachment; filename=" + ("ActivityInfo Export " + new Date().toString() + ".xls").replace(" ", "_"));
    }
    OutputStream os = resp.getOutputStream();
    export.getBook().write(os);
}
Also used : OutputStream(java.io.OutputStream) UserResult(org.activityinfo.legacy.shared.command.result.UserResult) GetUsers(org.activityinfo.legacy.shared.command.GetUsers) Date(java.util.Date) Timed(org.activityinfo.server.util.monitoring.Timed)

Example 14 with Timed

use of org.activityinfo.server.util.monitoring.Timed in project activityinfo by bedatadriven.

the class WkbGeometryProvider method getGeometries.

@Override
@Timed(name = "mapping.fetch_geometry")
public List<AdminGeo> getGeometries(int adminLevelId) {
    try {
        List<AdminGeo> list = Lists.newArrayList();
        DataInputStream in = new DataInputStream(openWkb(adminLevelId));
        WKBReader wkbReader = new WKBReader(geometryFactory);
        int count = in.readInt();
        for (int i = 0; i != count; ++i) {
            int id = in.readInt();
            LOGGER.info("Reading geometry for admin entity " + id);
            Geometry geometry = wkbReader.read(new DataInputInStream(in));
            list.add(new AdminGeo(id, geometry));
        }
        return list;
    } catch (IOException | ParseException e) {
        throw new RuntimeException(e);
    }
}
Also used : Geometry(com.vividsolutions.jts.geom.Geometry) IOException(java.io.IOException) ParseException(com.vividsolutions.jts.io.ParseException) DataInputStream(java.io.DataInputStream) WKBReader(com.vividsolutions.jts.io.WKBReader) Timed(org.activityinfo.server.util.monitoring.Timed)

Aggregations

Timed (org.activityinfo.server.util.monitoring.Timed)14 JsonGenerator (org.codehaus.jackson.JsonGenerator)5 StringWriter (java.io.StringWriter)4 Date (java.util.Date)3 AdminEntity (org.activityinfo.server.database.hibernate.entity.AdminEntity)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)2 IOException (java.io.IOException)2 OutputStream (java.io.OutputStream)2 Filter (org.activityinfo.legacy.shared.command.Filter)2 Month (org.activityinfo.model.type.time.Month)2 LocationType (org.activityinfo.server.database.hibernate.entity.LocationType)2 NewAdminEntity (org.activityinfo.server.endpoint.rest.model.NewAdminEntity)2 GeometrySerializer (com.bedatadriven.geojson.GeometrySerializer)1 GeneralPath (com.google.code.appengine.awt.geom.GeneralPath)1 Geometry (com.vividsolutions.jts.geom.Geometry)1 ParseException (com.vividsolutions.jts.io.ParseException)1 WKBReader (com.vividsolutions.jts.io.WKBReader)1 DataInputStream (java.io.DataInputStream)1 OutputStreamWriter (java.io.OutputStreamWriter)1 MessagingException (javax.mail.MessagingException)1