@GET @Path("/data/filters") @Produces("application/json") public Response filters(@QueryParam("from") String from, @QueryParam("to") String to, @QueryParam("past") String past){ TimeRange range = new TimeRange(from, to, past, null, null); Filters filters = null; if( canSearch(range) ){ filters = getStorage().findFilters(range.getFromDate(), range.getToDate(), null); } if( filters == null){ filters = new Filters(null, null); } filters.setInstances(addDefaultAndSort(filters.getInstances(), Properties.getAppInstance())); filters.setTypes( addDefaultAndSort(filters.getTypes(), Properties.getAppType())); return noCacheResponse(jsonUtil.toJson(filters)); }
@Test public void should_find_filters_for_date_range() throws IOException{ storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t1"); storage.save(stats(dt(year+"-01-01 08:30:00"), dt(year+"-01-01 08:40:00")), "i2", "t1"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t2"); storage.save(stats(dt(year+"-01-01 08:30:00"), dt(year+"-01-01 08:40:00")), "i3", "t2"); Filters filters = storage.findFilters(dt(year+"-01-01 08:35:00"), dt(year+"-01-01 08:37:00"), null); assertEquals( 2, filters.getInstances().size() ); assertTrue(filters.getInstances().contains("i2")); assertTrue(filters.getInstances().contains("i3")); assertEquals( 2, filters.getTypes().size() ); assertTrue(filters.getTypes().contains("t1")); assertTrue(filters.getTypes().contains("t2")); }
@Test public void should_find_all_filters() throws IOException{ storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t1"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i2", "t1"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t2"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i3", "t2"); Filters filters = storage.findFilters(dt(year+"-01-01 07:10:00"), dt(year+"-01-01 08:40:00"), null); assertEquals( 3, filters.getInstances().size() ); assertTrue(filters.getInstances().contains("i1")); assertTrue(filters.getInstances().contains("i2")); assertTrue(filters.getInstances().contains("i3")); assertEquals( 2, filters.getTypes().size() ); assertTrue(filters.getTypes().contains("t1")); assertTrue(filters.getTypes().contains("t2")); }
@Test public void should_find_filters_for_type() throws IOException{ storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t1"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i2", "t1"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i1", "t2"); storage.save(stats(dt(year+"-01-01 08:00:00"), dt(year+"-01-01 08:15:00")), "i3", "t2"); Filters filters = storage.findFilters(dt(year+"-01-01 07:10:00"), dt(year+"-01-01 08:40:00"), "t1"); assertEquals( 2, filters.getInstances().size() ); assertTrue(filters.getInstances().contains("i1")); assertTrue(filters.getInstances().contains("i2")); assertEquals( 1, filters.getTypes().size() ); assertTrue(filters.getTypes().contains("t1")); }