Преглед изворни кода

WIP app data views

tags/v0.4.0
Jonathan Cobb пре 4 година
родитељ
комит
e1825fb6fa
11 измењених фајлова са 46 додато и 12 уклоњено
  1. +2
    -1
      bubble-server/src/main/java/bubble/app/analytics/TrafficAnalyticsApp.java
  2. +4
    -0
      bubble-server/src/main/java/bubble/cloud/payment/delegate/DelegatedPaymentDriver.java
  3. +2
    -1
      bubble-server/src/main/java/bubble/model/app/AppDataDriver.java
  4. +3
    -1
      bubble-server/src/main/java/bubble/model/app/AppDataDriverBase.java
  5. +12
    -2
      bubble-server/src/main/java/bubble/resources/app/AppSitesResource.java
  6. +16
    -4
      bubble-server/src/main/java/bubble/resources/app/AppsResource.java
  7. +3
    -1
      bubble-server/src/main/java/bubble/service/cloud/DeviceIdService.java
  8. +1
    -0
      bubble-server/src/main/resources/logback.xml
  9. +1
    -0
      bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties
  10. +1
    -1
      bubble-web
  11. +1
    -1
      utils/cobbzilla-wizard

+ 2
- 1
bubble-server/src/main/java/bubble/app/analytics/TrafficAnalyticsApp.java Прегледај датотеку

@@ -2,6 +2,7 @@ package bubble.app.analytics;

import bubble.model.account.Account;
import bubble.model.app.*;
import bubble.model.device.Device;
import org.cobbzilla.wizard.dao.SearchResults;
import org.cobbzilla.wizard.model.search.SearchBoundComparison;
import org.cobbzilla.wizard.model.search.SearchQuery;
@@ -23,7 +24,7 @@ public class TrafficAnalyticsApp extends AppDataDriverBase {
public static final String VIEW_last_7_days = "last_7_days";
public static final String VIEW_last_30_days = "last_30_days";

@Override public SearchResults query(Account caller, AppSite site, AppDataConfig dataConfig, AppDataView view, SearchQuery query) {
@Override public SearchResults query(Account caller, Device device, BubbleApp app, AppSite site, AppDataView view, SearchQuery query) {
query = query.setBound("key", getBound(view));
return processResults(searchService.search(false, caller, dataDAO, query));
}


+ 4
- 0
bubble-server/src/main/java/bubble/cloud/payment/delegate/DelegatedPaymentDriver.java Прегледај датотеку

@@ -29,6 +29,10 @@ public class DelegatedPaymentDriver extends DelegatedCloudServiceDriverBase impl
log.warn("getPaymentMethodType: delegated driver has non-delegated cloud: "+cloud.getUuid());
return cloud.getPaymentDriver(configuration).getPaymentMethodType();
}
if (!configuration.paymentsEnabled()) {
log.warn("getPaymentMethodType: payments not enabled, returning null");
return null;
};
final CloudService delegate = cloudDAO.findByUuid(cloud.getDelegated());
if (delegate == null) throw invalidEx("err.paymentService.notFound");
return delegate.getPaymentDriver(configuration).getPaymentMethodType();


+ 2
- 1
bubble-server/src/main/java/bubble/model/app/AppDataDriver.java Прегледај датотеку

@@ -1,11 +1,12 @@
package bubble.model.app;

import bubble.model.account.Account;
import bubble.model.device.Device;
import org.cobbzilla.wizard.dao.SearchResults;
import org.cobbzilla.wizard.model.search.SearchQuery;

public interface AppDataDriver {

SearchResults query(Account caller, AppSite site, AppDataConfig dataConfig, AppDataView view, SearchQuery query);
SearchResults query(Account caller, Device device, BubbleApp app, AppSite site, AppDataView view, SearchQuery query);

}

+ 3
- 1
bubble-server/src/main/java/bubble/model/app/AppDataDriverBase.java Прегледај датотеку

@@ -2,6 +2,7 @@ package bubble.model.app;

import bubble.dao.app.AppDataDAO;
import bubble.model.account.Account;
import bubble.model.device.Device;
import bubble.service.SearchService;
import org.cobbzilla.wizard.dao.SearchResults;
import org.cobbzilla.wizard.model.search.SearchQuery;
@@ -12,7 +13,8 @@ public abstract class AppDataDriverBase implements AppDataDriver {
@Autowired protected AppDataDAO dataDAO;
@Autowired protected SearchService searchService;

@Override public SearchResults query(Account caller, AppSite site, AppDataConfig dataConfig, AppDataView view, SearchQuery query) {
@Override public SearchResults query(Account caller, Device device, BubbleApp app, AppSite site, AppDataView view, SearchQuery query) {
query.setBound("app", app.getUuid());
return searchService.search(false, caller, dataDAO, query);
}



+ 12
- 2
bubble-server/src/main/java/bubble/resources/app/AppSitesResource.java Прегледај датотеку

@@ -6,9 +6,13 @@ import bubble.model.app.AppDataDriver;
import bubble.model.app.AppDataView;
import bubble.model.app.AppSite;
import bubble.model.app.BubbleApp;
import bubble.model.device.Device;
import bubble.resources.account.AccountOwnedTemplateResource;
import bubble.service.cloud.DeviceIdService;
import org.cobbzilla.wizard.model.search.SearchQuery;
import org.glassfish.grizzly.http.server.Request;
import org.glassfish.jersey.server.ContainerRequest;
import org.springframework.beans.factory.annotation.Autowired;

import javax.ws.rs.POST;
import javax.ws.rs.Path;
@@ -24,6 +28,8 @@ public class AppSitesResource extends AccountOwnedTemplateResource<AppSite, AppS

private BubbleApp app;

@Autowired private DeviceIdService deviceIdService;

public AppSitesResource(Account account, BubbleApp app) {
super(account);
this.app = app;
@@ -69,7 +75,8 @@ public class AppSitesResource extends AccountOwnedTemplateResource<AppSite, AppS
}

@POST @Path("/{id}"+EP_VIEW+"/{view}")
public Response search(@Context ContainerRequest ctx,
public Response search(@Context Request req,
@Context ContainerRequest ctx,
@PathParam("id") String id,
@PathParam("view") String viewName,
SearchQuery query) {
@@ -82,8 +89,11 @@ public class AppSitesResource extends AccountOwnedTemplateResource<AppSite, AppS
final AppDataView view = app.getDataConfig().getView(viewName);
if (view == null) return notFound(viewName);

final String remoteHost = getRemoteHost(req);
final Device device = deviceIdService.findDeviceByIp(remoteHost);

final AppDataDriver driver = app.getDataConfig().getDriver(configuration);
return ok(driver.query(caller, site, app.getDataConfig(), view, query));
return ok(driver.query(caller, device, app, site, view, query));
}

}

+ 16
- 4
bubble-server/src/main/java/bubble/resources/app/AppsResource.java Прегледај датотеку

@@ -4,15 +4,20 @@ import bubble.model.account.Account;
import bubble.model.app.AppDataDriver;
import bubble.model.app.AppDataView;
import bubble.model.app.BubbleApp;
import bubble.model.device.Device;
import bubble.service.cloud.DeviceIdService;
import lombok.extern.slf4j.Slf4j;
import org.cobbzilla.wizard.model.search.SearchQuery;
import org.glassfish.grizzly.http.server.Request;
import org.glassfish.jersey.server.ContainerRequest;
import org.springframework.beans.factory.annotation.Autowired;

import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;

import static bubble.ApiConstants.EP_VIEW;
import static bubble.ApiConstants.getRemoteHost;
import static org.cobbzilla.wizard.resources.ResourceUtil.*;

@Slf4j
@@ -20,18 +25,22 @@ public class AppsResource extends AppsResourceBase {

public AppsResource(Account account) { super(account); }

@Autowired private DeviceIdService deviceIdService;

@GET @Path("/{id}"+EP_VIEW+"/{view}")
public Response search(@Context ContainerRequest ctx,
public Response search(@Context Request req,
@Context ContainerRequest ctx,
@PathParam("id") String id,
@PathParam("view") String viewName,
@QueryParam("n") Integer pageNumber,
@QueryParam("sz") Integer pageSize) {
final SearchQuery query = new SearchQuery(pageNumber == null ? 1 : pageNumber, pageSize == null ? 10 : pageSize);
return search(ctx, id, viewName, query);
return search(req, ctx, id, viewName, query);
}

@POST @Path("/{id}"+EP_VIEW+"/{view}")
public Response search(@Context ContainerRequest ctx,
public Response search(@Context Request req,
@Context ContainerRequest ctx,
@PathParam("id") String id,
@PathParam("view") String viewName,
SearchQuery query) {
@@ -44,8 +53,11 @@ public class AppsResource extends AppsResourceBase {
final AppDataView view = app.getDataConfig().getView(viewName);
if (view == null) return notFound(viewName);

final String remoteHost = getRemoteHost(req);
final Device device = deviceIdService.findDeviceByIp(remoteHost);

final AppDataDriver driver = app.getDataConfig().getDriver(configuration);
return ok(driver.query(caller, null, app.getDataConfig(), view, query));
return ok(driver.query(caller, device, app, null, view, query));
}

}

+ 3
- 1
bubble-server/src/main/java/bubble/service/cloud/DeviceIdService.java Прегледај датотеку

@@ -22,6 +22,7 @@ import static bubble.ApiConstants.HOME_DIR;
import static java.util.concurrent.TimeUnit.MINUTES;
import static org.cobbzilla.util.daemon.ZillaRuntime.*;
import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx;
import static org.cobbzilla.wizard.server.RestServerBase.reportError;

@Service @Slf4j
public class DeviceIdService {
@@ -43,7 +44,8 @@ public class DeviceIdService {

if (!WG_DEVICES_DIR.exists()) {
if (configuration.testMode()) return findTestDevice(ipAddr);
throw invalidEx("err.deviceDir.notFound");
reportError("findDeviceByIp: err.deviceDir.notFound");
return null;
}

return deviceCache.computeIfAbsent(ipAddr, ip -> {


+ 1
- 0
bubble-server/src/main/resources/logback.xml Прегледај датотеку

@@ -34,6 +34,7 @@
<logger name="org.glassfish.jersey.grizzly" level="WARN" />
<logger name="bubble.cloud.email.SmtpEmailDriver" level="WARN" />
<logger name="org.cobbzilla.wizard.dao.AbstractCRUDDAO" level="WARN" />
<logger name="org.cobbzilla.wizard.dao.SqlViewSearchHelper" level="DEBUG" />
<logger name="org.cobbzilla.wizard.server.listener.BrowserLauncherListener" level="INFO" />
<logger name="bubble.service.notify.NotificationService" level="WARN" />
<logger name="bubble.resources.stream" level="DEBUG" />


+ 1
- 0
bubble-server/src/main/resources/message_templates/en_US/server/post_auth/ResourceMessages.properties Прегледај датотеку

@@ -404,6 +404,7 @@ message_app_data_no_expiration=None
button_label_app_data_delete_icon=fa fa-trash
message_app_data_previous_page=<< previous page <<
message_app_data_next_page=>> next page >>
message_data_results={{appData.totalCount}} total records, showing page {{query.pageNumber}} of {{numPages}}
message_no_data=No Data

# AppSite


+ 1
- 1
bubble-web

@@ -1 +1 @@
Subproject commit 67fe80424e5195d164fd405d8dec696b2d022a80
Subproject commit 7f057c060912e80c4fa78e3ace494fec82e050f6

+ 1
- 1
utils/cobbzilla-wizard

@@ -1 +1 @@
Subproject commit 440da40bbda8a92b2117ba7f4bbaccfe750a058d
Subproject commit 460ac3824413557e0c75c0144e83f52bbd17cf7e

Loading…
Откажи
Сачувај