private void putDeviceCountIntoResponseHeaders(PushApplication app, ResponseBuilder response) { long appCount = 0; for (Variant variant : app.getVariants()) { long variantCount = installationDao.getNumberOfDevicesForVariantID(variant.getVariantID()); appCount += variantCount; response.header("deviceCount_variant_" + variant.getVariantID(), variantCount); } response.header("deviceCount_app_" + app.getPushApplicationID(), appCount); }
public ApplicationVariant(PushApplication application, Variant variant) { this.applicationID = application.getPushApplicationID(); this.applicationName = application.getName(); this.variant = variant; }
@Override public void delete(PushApplication pushApplication) { PushApplication entity = entityManager.find(PushApplication.class, pushApplication.getId()); final List<Variant> variants = entity.getVariants(); if (!variants.isEmpty()) { entityManager.createQuery("delete from Installation i where i.variant in :variants") .setParameter("variants", variants).executeUpdate(); } super.delete(entity); }
protected Set<T> getVariants(PushApplication application) { return application.getVariants().stream() .filter(variant -> type.isAssignableFrom(variant.getClass())) .map(variant -> (T) variant) .collect(Collectors.toSet()); }
pushApp.setDescription(updatedPushApp.getDescription()); pushApp.setName(updatedPushApp.getName()); logger.trace("Invoke service to update a push application"); pushAppService.updatePushApplication(pushApp);
@Override public void addPushApplication(PushApplication pushApp) { final String id = pushApp.getPushApplicationID(); if (findByPushApplicationID(id) != null) { throw new IllegalArgumentException("App ID already exists: " + id); } try { pushApp.setDeveloper(loginName.get()); pushApplicationDao.create(pushApp); pushApplicationDao.flushAndClear(); } catch (RuntimeException e) { throw new RuntimeException("Transaction failed for app with ID: " + id, e); } }
/** * Reset MasterSecret for Push Application * * @param pushApplicationID id of {@link PushApplication} * @return updated {@link PushApplication} * * @statuscode 200 The MasterSecret for Push Application reset successfully * @statuscode 404 The requested PushApplication resource does not exist */ @PUT @Path("/{pushAppID}/reset") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response resetMasterSecret(@PathParam("pushAppID") String pushApplicationID) { //PushApplication pushApp = pushAppService.findByPushApplicationIDForDeveloper(pushApplicationID, extractUsername(request)); PushApplication pushApp = getSearch().findByPushApplicationIDForDeveloper(pushApplicationID); if (pushApp != null) { // generate the new 'masterSecret' and apply it: String newMasterSecret = UUID.randomUUID().toString(); pushApp.setMasterSecret(newMasterSecret); logger.info("Invoke service to change master secret of a push application '{}'", pushApp.getPushApplicationID()); pushAppService.updatePushApplication(pushApp); return Response.ok(pushApp).build(); } return Response.status(Status.NOT_FOUND).entity("Could not find requested PushApplicationEntity").build(); }
private void putActivityIntoResponseHeaders(PushApplication app, ResponseBuilder response) { response.header("activity_app_" + app.getPushApplicationID(), metricsService.countMessagesForPushApplication(app.getPushApplicationID())); }
private List<Application> wrapApplication(List<FlatPushMessageInformation> pushMessageInformations) { final List<Application> applications = new ArrayList<>(pushMessageInformations.size()); pushMessageInformations.forEach(pushMessageInformation -> { final String applicationName = pushApplicationDao.findByPushApplicationID(pushMessageInformation.getPushApplicationId()).getName(); final Application application = new Application(applicationName, pushMessageInformation.getPushApplicationId(), pushMessageInformation.getSubmitDate()); applications.add(application); }); return applications; } }
/** * returns application if the masterSecret is valid for the request PushApplicationEntity */ private PushApplication loadPushApplicationWhenAuthorized(HttpServletRequest request) { // extract the pushApplicationID and its secret from the HTTP Basic header: String[] credentials = HttpBasicHelper.extractUsernameAndPasswordFromBasicHeader(request); String pushApplicationID = credentials[0]; String secret = credentials[1]; final PushApplication pushApplication = pushApplicationService.findByPushApplicationID(pushApplicationID); if (pushApplication != null && pushApplication.getMasterSecret().equals(secret)) { return pushApplication; } // unauthorized... return null; } }
@Override public void addVariant(PushApplication pushApp, Variant variant) { pushApp.getVariants().add(variant); pushApplicationDao.update(pushApp); }
.path(pushApp.getPushApplicationID()) .build();
logger.trace("Query details for push application {}", pushApp.getName()); ResponseBuilder response = Response.ok(pushApp); if (includeActivity) {
variants.addAll(pushApplication.getVariants()); pushApplication.getPushApplicationID(), jsonMessageContent, message.getIpAddress(),
private static List<ApplicationVariant> wrapApplicationVariant(List<PushApplication> applications) { final List<ApplicationVariant> applicationVariants = new ArrayList<>(applications.size()); applications.forEach(application -> { application.getVariants().forEach(variant -> { final ApplicationVariant applicationVariant = new ApplicationVariant(application, variant); applicationVariants.add(applicationVariant); }); }); return applicationVariants; }
@Override public void delete(PushApplication pushApplication) { PushApplication entity = entityManager.find(PushApplication.class, pushApplication.getId()); final List<Variant> variants = entity.getVariants(); if (!variants.isEmpty()) { entityManager.createQuery("delete from Installation i where i.variant in :variants") .setParameter("variants", variants).executeUpdate(); } super.delete(entity); }
private List<Application> wrapApplication(List<FlatPushMessageInformation> pushMessageInformations) { final List<Application> applications = new ArrayList<>(pushMessageInformations.size()); pushMessageInformations.forEach(pushMessageInformation -> { final PushApplication pushApplication = pushApplicationDao.findByPushApplicationID(pushMessageInformation.getPushApplicationId()); // make sure this is really there, and has not been deleted if (pushApplication != null) { final String applicationName = pushApplication.getName(); final Application application = new Application(applicationName, pushMessageInformation.getPushApplicationId(), pushMessageInformation.getSubmitDate()); applications.add(application); } }); return applications; } }
variants.addAll(pushApplication.getVariants()); pushApplication.getPushApplicationID(), jsonMessageContent, message.getIpAddress(),
private static List<ApplicationVariant> wrapApplicationVariant(List<PushApplication> applications) { final List<ApplicationVariant> applicationVariants = new ArrayList<>(applications.size()); applications.forEach(application -> { application.getVariants().forEach(variant -> { final ApplicationVariant applicationVariant = new ApplicationVariant(application, variant); applicationVariants.add(applicationVariant); }); }); return applicationVariants; }