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();
}
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();
}
}
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);
}
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);
}
}
Aggregations