Config(String name, Properties properties) { this.name = name; //return only editable options this.body = getPropertyAsString(properties); }
@PUT @Consumes(value = MediaType.APPLICATION_JSON) @Path("/{name}") public Response updateConfig(@PathParam("name") String name, Config updatedConfig) { log.info("Updating config {}. New body : ", name); log.info("{}", updatedConfig.body); switch (name) { case TOKEN_MAIL_BODY: textHolder.tokenBody = updatedConfig.body; break; case SERVER_PROPERTIES_FILENAME : Properties properties = readPropertiesFromString(updatedConfig.body); serverProperties.putAll(properties); break; } return ok(updatedConfig.toString()); }
@GET @Path("") public Response getConfigs(@QueryParam("_filters") String filterParam, @QueryParam("_page") int page, @QueryParam("_perPage") int size, @QueryParam("_sortField") String sortField, @QueryParam("_sortDir") String sortOrder) { List<Config> configs = new ArrayList<>(); configs.add(new Config(SERVER_PROPERTIES_FILENAME)); configs.add(new Config(MAIL_PROPERTIES_FILENAME)); configs.add(new Config(GCM_PROPERTIES_FILENAME)); configs.add(new Config(DB_PROPERTIES_FILENAME)); configs.add(new Config(TWITTER_PROPERTIES_FILENAME)); configs.add(new Config(TOKEN_MAIL_BODY)); return appendTotalCountHeader( ok(sort(configs, sortField, sortOrder), page, size), configs.size() ); }
var otaLogic = new OTALogic(holder, rootPath); var usersLogic = new UsersLogic(holder, rootPath); var statsLogic = new StatsLogic(holder, rootPath); var configsLogic = new ConfigsLogic(holder, rootPath); var hardwareStatsLogic = new HardwareStatsLogic(holder, rootPath); var adminAuthHandler = new AdminAuthHandler(holder, rootPath); var authCookieHandler = new AuthCookieHandler(holder.sessionDao);
@GET @Path("/{name}") public Response getConfigByName(@PathParam("name") String name) { switch (name) { case TOKEN_MAIL_BODY : return ok(new Config(name, textHolder.tokenBody).toString()); case SERVER_PROPERTIES_FILENAME : return ok(new Config(name, serverProperties).toString()); case MAIL_PROPERTIES_FILENAME : return ok(new Config(name, new MailProperties(Collections.emptyMap())).toString()); case GCM_PROPERTIES_FILENAME : return ok(new Config(name, new GCMProperties(Collections.emptyMap())).toString()); case TWITTER_PROPERTIES_FILENAME : return ok(new Config(name, new TwitterProperties(Collections.emptyMap())).toString()); default : return badRequest(); } }
String[] parts = slitByLast(id); String name = parts[0]; String appName = parts[1]; deleteUserByName(id); for (DashBoard dashBoard : oldUser.profile.dashBoards) { for (Device device : dashBoard.devices) {
@GET @Path("/{id}") public Response getUserByName(@PathParam("id") String id) { String[] parts = slitByLast(id); String email = parts[0]; String appName = parts[1]; User user = userDao.getByName(email, appName); if (user == null) { return notFound(); } return ok(user); }
private List<IpNameResponse> searchByIP(String ip) { Set<IpNameResponse> res = new HashSet<>(); int counter = 0; for (User user : userDao.users.values()) { if (user.lastLoggedIP != null) { String name = user.email + "-" + user.appName; if (ip == null) { res.add(new IpNameResponse(counter++, name, user.lastLoggedIP, "app")); for (DashBoard dashBoard : user.profile.dashBoards) { for (Device device : dashBoard.devices) { if (device.lastLoggedIP != null) { res.add(new IpNameResponse(counter++, name, device.lastLoggedIP, "hard")); } } } } else { if (user.lastLoggedIP.contains(ip) || deviceContains(user, ip)) { res.add(new IpNameResponse(counter++, name, user.lastLoggedIP, "hard")); } } } } return new ArrayList<>(res); }
@GET @Path("/ips") public Response getIps(@QueryParam("_filters") String filterParam, @QueryParam("_page") int page, @QueryParam("_perPage") int size, @QueryParam("_sortField") String sortField, @QueryParam("_sortDir") String sortOrder) { if (filterParam != null) { IpFilter filter = JsonParser.readAny(filterParam, IpFilter.class); filterParam = filter == null ? null : filter.ip; } return ok(sort(searchByIP(filterParam), sortField, sortOrder)); }
@DELETE @Path("/{id}") public Response deleteUserByName(@PathParam("id") String id) { String[] parts = slitByLast(id); String email = parts[0]; String appName = parts[1]; UserKey userKey = new UserKey(email, appName); User user = userDao.delete(userKey); if (user == null) { return notFound(); } if (!fileManager.delete(email, appName)) { return notFound(); } reportingDao.delete(user); dbManager.deleteUser(userKey); Session session = sessionDao.userSession.remove(userKey); if (session != null) { session.closeAll(); } log.info("User {} successfully removed.", email); return ok(); }