@@ -1,10 +1,7 @@ | |||||
package bubble.app.analytics; | package bubble.app.analytics; | ||||
import bubble.model.account.Account; | import bubble.model.account.Account; | ||||
import bubble.model.app.AppData; | |||||
import bubble.model.app.AppDataConfig; | |||||
import bubble.model.app.AppDataDriverBase; | |||||
import bubble.model.app.AppDataView; | |||||
import bubble.model.app.*; | |||||
import org.cobbzilla.wizard.dao.SearchResults; | import org.cobbzilla.wizard.dao.SearchResults; | ||||
import org.cobbzilla.wizard.model.search.SearchBoundComparison; | import org.cobbzilla.wizard.model.search.SearchBoundComparison; | ||||
import org.cobbzilla.wizard.model.search.SearchQuery; | import org.cobbzilla.wizard.model.search.SearchQuery; | ||||
@@ -26,7 +23,7 @@ public class TrafficAnalyticsApp extends AppDataDriverBase { | |||||
public static final String VIEW_last_7_days = "last_7_days"; | public static final String VIEW_last_7_days = "last_7_days"; | ||||
public static final String VIEW_last_30_days = "last_30_days"; | public static final String VIEW_last_30_days = "last_30_days"; | ||||
@Override public SearchResults query(Account caller, AppDataConfig dataConfig, AppDataView view, SearchQuery query) { | |||||
@Override public SearchResults query(Account caller, AppSite site, AppDataConfig dataConfig, AppDataView view, SearchQuery query) { | |||||
query = query.setBound("key", getBound(view)); | query = query.setBound("key", getBound(view)); | ||||
return processResults(searchService.search(false, caller, dataDAO, query)); | return processResults(searchService.search(false, caller, dataDAO, query)); | ||||
} | } | ||||
@@ -6,6 +6,6 @@ import org.cobbzilla.wizard.model.search.SearchQuery; | |||||
public interface AppDataDriver { | public interface AppDataDriver { | ||||
SearchResults query(Account caller, AppDataConfig dataConfig, AppDataView view, SearchQuery query); | |||||
SearchResults query(Account caller, AppSite site, AppDataConfig dataConfig, AppDataView view, SearchQuery query); | |||||
} | } |
@@ -12,7 +12,7 @@ public abstract class AppDataDriverBase implements AppDataDriver { | |||||
@Autowired protected AppDataDAO dataDAO; | @Autowired protected AppDataDAO dataDAO; | ||||
@Autowired protected SearchService searchService; | @Autowired protected SearchService searchService; | ||||
@Override public SearchResults query(Account caller, AppDataConfig dataConfig, AppDataView view, SearchQuery query) { | |||||
@Override public SearchResults query(Account caller, AppSite site, AppDataConfig dataConfig, AppDataView view, SearchQuery query) { | |||||
return searchService.search(false, caller, dataDAO, query); | return searchService.search(false, caller, dataDAO, query); | ||||
} | } | ||||
@@ -2,9 +2,12 @@ package bubble.resources.app; | |||||
import bubble.dao.app.AppSiteDAO; | import bubble.dao.app.AppSiteDAO; | ||||
import bubble.model.account.Account; | import bubble.model.account.Account; | ||||
import bubble.model.app.AppDataDriver; | |||||
import bubble.model.app.AppDataView; | |||||
import bubble.model.app.AppSite; | import bubble.model.app.AppSite; | ||||
import bubble.model.app.BubbleApp; | import bubble.model.app.BubbleApp; | ||||
import bubble.resources.account.AccountOwnedTemplateResource; | import bubble.resources.account.AccountOwnedTemplateResource; | ||||
import org.cobbzilla.wizard.model.search.SearchQuery; | |||||
import org.glassfish.jersey.server.ContainerRequest; | import org.glassfish.jersey.server.ContainerRequest; | ||||
import javax.ws.rs.POST; | import javax.ws.rs.POST; | ||||
@@ -65,4 +68,22 @@ public class AppSitesResource extends AccountOwnedTemplateResource<AppSite, AppS | |||||
return configuration.subResource(AppSiteDataResource.class, getAccount(account, ctx), app, site); | return configuration.subResource(AppSiteDataResource.class, getAccount(account, ctx), app, site); | ||||
} | } | ||||
@POST @Path("/{id}"+EP_VIEW+"/{view}") | |||||
public Response search(@Context ContainerRequest ctx, | |||||
@PathParam("id") String id, | |||||
@PathParam("view") String viewName, | |||||
SearchQuery query) { | |||||
final Account caller = userPrincipal(ctx); | |||||
final AppSite site = getDao().findByAccountAndId(getAccountUuid(ctx), id); | |||||
if (site == null) return notFound(id); | |||||
if (!app.hasDataConfig()) return notFound(id); | |||||
final AppDataView view = app.getDataConfig().getView(viewName); | |||||
if (view == null) return notFound(viewName); | |||||
final AppDataDriver driver = app.getDataConfig().getDriver(configuration); | |||||
return ok(driver.query(caller, site, app.getDataConfig(), view, query)); | |||||
} | |||||
} | } |
@@ -45,7 +45,7 @@ public class AppsResource extends AppsResourceBase { | |||||
if (view == null) return notFound(viewName); | if (view == null) return notFound(viewName); | ||||
final AppDataDriver driver = app.getDataConfig().getDriver(configuration); | final AppDataDriver driver = app.getDataConfig().getDriver(configuration); | ||||
return ok(driver.query(caller, app.getDataConfig(), view, query)); | |||||
return ok(driver.query(caller, null, app.getDataConfig(), view, query)); | |||||
} | } | ||||
} | } |
@@ -1,6 +1,5 @@ | |||||
package bubble.service.cloud; | package bubble.service.cloud; | ||||
import bubble.dao.account.AccountSshKeyDAO; | |||||
import bubble.model.account.Account; | import bubble.model.account.Account; | ||||
import bubble.model.cloud.AnsibleInstallType; | import bubble.model.cloud.AnsibleInstallType; | ||||
import bubble.model.cloud.AnsibleRole; | import bubble.model.cloud.AnsibleRole; | ||||
@@ -36,7 +35,6 @@ import static org.cobbzilla.util.string.Base64.DONT_GUNZIP; | |||||
@Service @Slf4j | @Service @Slf4j | ||||
public class AnsiblePrepService { | public class AnsiblePrepService { | ||||
@Autowired private AccountSshKeyDAO sshKeyDAO; | |||||
@Autowired private DatabaseFilterService dbFilter; | @Autowired private DatabaseFilterService dbFilter; | ||||
@Autowired private StandardStorageService storageService; | @Autowired private StandardStorageService storageService; | ||||
@Autowired private BubbleConfiguration configuration; | @Autowired private BubbleConfiguration configuration; | ||||
@@ -1 +1 @@ | |||||
Subproject commit 68f5986170adb77f8a7810b34d1ba5bfc0a4733c | |||||
Subproject commit 15dd2335bd69f2cc311294dd72a0023fa863798b |