@SuppressWarnings("unchecked")
  public void getUserReports(HttpServletRequest req, HttpServletResponse response)
      throws ServletException, IOException {

    System.out.println(">>> Get User Reports");
    String userEmail = req.getParameter("userEmail");
    String userLogin = req.getParameter("userLogin");
    String siteKey = req.getParameter("siteKey");
    String siteID = req.getParameter("siteID");
    String callback = req.getParameter("callback");

    if (!PersistenceUtils.checkSiteKey(siteKey, siteID)) {
      String res =
          callback
              + "({'error':'Your site has not been registered. You can generate reports but they will not be archived'})";
      response.setContentType("text/javascript");
      PrintWriter out = response.getWriter();
      out.println(res);
      return;
    }

    Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
    List<ReportJob> job = null;
    Session auditsess = PersistenceUtils.getAuditSession();
    System.out.println(">>> Get User Reports DB");

    try {

      job =
          auditsess
              .createCriteria(ReportJob.class)
              .add(Restrictions.eq("siteKey", siteKey))
              .add(Restrictions.eq("userEmail", userEmail))
              .add(Restrictions.eq("userLogin", userLogin))
              .add(Restrictions.eq("showUser", true))
              .list();

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      auditsess.close();
      System.out.println("<<< Get User Reports DB");
    }

    String json = gson.toJson(job);
    String res = callback + "(" + json + ")";

    response.setContentType("text/javascript");
    PrintWriter out = response.getWriter();
    out.println(res);

    System.out.println("<<< Get User Reports");
  }
예제 #2
0
  /**
   * This method should be called only if it has been determined that table schema should be created
   * (or deleted). Create the {@link CustomObject} for the metadata API to use during deploy
   *
   * @param cmd the class metadata for the entity
   * @param storeManager the store manager
   * @param mconn the managed connection that contains connections to the Force.com APIs
   */
  public void createCustomObject(
      AbstractClassMetaData cmd, ForceStoreManager storeManager, ForceManagedConnection mconn) {
    String shortName = removeCustomThingSuffix(tableImpl.getTableName().getName());

    if (isReadOnlyTable) {
      throw new NucleusUserException("Cannot create readOnlySchema custom object: " + shortName);
    }

    createCustomObjectStub();

    customObject.setDescription(shortName + ": Persistenceforce created custom object");
    customObject.setDeploymentStatus(DeploymentStatus.Deployed);
    customObject.setSharingModel(SharingModel.ReadWrite);
    customObject.setLabel(shortName);
    customObject.setPluralLabel(shortName);

    CustomField nf = new CustomField();
    nf.setType(FieldType.Text);
    nf.setLabel("name");
    nf.setFullName("name");
    nf.setDescription("name");

    customObject.setNameField(nf);

    Map<String, String> classExtensions = PersistenceUtils.getForceExtensions(cmd);
    String value = classExtensions.get("enableFeeds");
    if (value != null) {
      customObject.setEnableFeeds(Boolean.valueOf(value));
    }
  }
예제 #3
0
 /**
  * This method should be called only if it has been determined that field schema should be created
  * (or deleted). Create the {@link CustomField} for the metadata API to use during deploy
  *
  * @param cmd the class metadata for the entity
  * @param storeManager the store manager
  */
 public void createCustomFields(AbstractClassMetaData cmd, ForceStoreManager storeManager) {
   synchronized (cmd) {
     try {
       if (cmd.isEmbeddedOnly() || PersistenceUtils.isReadOnlySchema(cmd, false)) return;
       ForceManagedConnection mconn = storeManager.createConnection();
       try {
         ForceColumnMetaData cols = new ForceColumnMetaData(cmd, tableImpl, storeManager);
         cols.createFieldSchema(mconn.getNamespace());
         if (customObject == null) {
           createCustomObjectStub();
         }
         cols.addFieldsToObject(customObject);
       } catch (NucleusException ce) {
         throw ce;
       } catch (Exception e) {
         throw new NucleusException(e.getMessage(), e);
       } finally {
         mconn.close();
       }
     } catch (Exception e) {
       throw new NucleusUserException(
           "Exception during initialisation of metadata for " + cmd.getFullClassName(), e);
     }
   }
 }
 public void init(final ServletConfig sc) {
   try {
     super.init(sc);
   } catch (ServletException e) {
     e.printStackTrace();
   }
   PersistenceUtils.init(sc);
 }
  public void service(HttpServletRequest req, HttpServletResponse response)
      throws ServletException, IOException {

    System.out.println(">>> Remove Report");
    // Doesn't actually remove the record. Contents are nulled out and marked not to be shown to
    // user. Kept for auditting and billing purposes
    String userEmail = req.getParameter("userEmail");
    String userLogin = req.getParameter("userLogin");
    String siteKey = req.getParameter("siteKey");
    String id = req.getParameter("id");

    final Session auditsess = PersistenceUtils.getAuditSession();

    try {
      Transaction txn = auditsess.beginTransaction();
      ReportJob job =
          (ReportJob)
              auditsess
                  .createCriteria(ReportJob.class)
                  .add(Restrictions.eq("id", Long.parseLong(id)))
                  .add(Restrictions.eq("siteKey", siteKey))
                  .add(Restrictions.eq("userEmail", userEmail))
                  .add(Restrictions.eq("userLogin", userLogin))
                  .uniqueResult();
      job.showUser = false;
      job.reportResult = null;
      auditsess.update(job);
      txn.commit();
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      auditsess.close();
    }

    getUserReports(req, response);
  }