Skip to content
This repository has been archived by the owner on Feb 20, 2024. It is now read-only.

Commit

Permalink
Updated counting of Queries (#154)
Browse files Browse the repository at this point in the history
* added setQueryCount()

* dummy data fix

* typo fix

* get actual count of queries for the owner

* query counting upgrade

* remove ordering

* researcher query count

* updated queryCounting for researcher

* cleanup
  • Loading branch information
RadovanTomik committed Oct 21, 2022
1 parent c2c4fbc commit 0dda697
Show file tree
Hide file tree
Showing 6 changed files with 164 additions and 262 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,30 +27,28 @@

package de.samply.bbmri.negotiator.control.owner;

import java.io.Serializable;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.*;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

import de.samply.bbmri.negotiator.Config;
import de.samply.bbmri.negotiator.ConfigFactory;
import de.samply.bbmri.negotiator.control.SessionBean;
import de.samply.bbmri.negotiator.control.UserBean;
import de.samply.bbmri.negotiator.db.util.DbUtil;
import de.samply.bbmri.negotiator.jooq.enums.Flag;
import de.samply.bbmri.negotiator.model.OwnerQueryStatsDTO;
import de.samply.bbmri.negotiator.model.QueryStatsDTO;
import org.jooq.Record;
import org.jooq.Result;
import org.primefaces.model.FilterMeta;
import org.primefaces.model.LazyDataModel;
import org.primefaces.model.SortOrder;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import java.io.Serializable;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.*;

/**
* Manages the query view for owners
*/
Expand All @@ -65,8 +63,7 @@ public class OwnerQueriesBean implements Serializable {

// TODO: set the chunk size static for now, but this should be adopted to display according to the maximum page size
private static final int CHUNK_SIZE = 5;
// Number of all queries for this researcher
// TODO: check if this can be removed

private int queryCount;
// lazy data model to hold the researcher queries
private LazyDataModel<OwnerQueryStatsDTO> lazyDataModel;
Expand All @@ -90,7 +87,7 @@ public class OwnerQueriesBean implements Serializable {
*/
@PostConstruct
public void init() {
this.getQueryCount();
countQueriesForOwner();

this.lazyDataModel = new LazyDataModel<OwnerQueryStatsDTO>() {

Expand Down Expand Up @@ -248,9 +245,13 @@ private List<OwnerQueryStatsDTO> loadLatestOwnerQueryStatsDTO( int offset, int s
* Load the number of queries "("SELECT COUNT(*) from ..."
* @return int numQueries
*/
public void getQueryCount() {
public int getQueryCount() {
return this.queryCount;
}

public void countQueriesForOwner() {
try( Config config = ConfigFactory.get()) {
this.queryCount = DbUtil.getOwnerQueriesCount(config, userBean.getUserId(), getFilterTerms());
this.queryCount = DbUtil.countOwnerQueries(config, userBean.getUserId(), getFilterTerms(), flagFilter, isTestRequest);
} catch (SQLException e) {
System.err.println("ERROR: OwnerQueriesBean::getQueryCount()");
e.printStackTrace();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,32 +26,8 @@

package de.samply.bbmri.negotiator.control.owner;

import java.io.*;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Collection;
import java.util.stream.Collectors;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.openhtmltopdf.pdfboxout.PdfRendererBuilder;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
import org.apache.pdfbox.io.MemoryUsageSetting;
import de.samply.bbmri.negotiator.Config;
import de.samply.bbmri.negotiator.ConfigFactory;
import de.samply.bbmri.negotiator.FileUtil;
Expand All @@ -68,10 +44,14 @@
import de.samply.bbmri.negotiator.model.*;
import de.samply.bbmri.negotiator.rest.RestApplication;
import de.samply.bbmri.negotiator.rest.dto.QueryDTO;
import eu.bbmri.eric.csit.service.negotiator.lifecycle.CollectionLifeCycleStatus;
import de.samply.bbmri.negotiator.util.DataCache;
import eu.bbmri.eric.csit.service.negotiator.lifecycle.CollectionLifeCycleStatus;
import eu.bbmri.eric.csit.service.negotiator.lifecycle.RequestLifeCycleStatus;
import eu.bbmri.eric.csit.service.negotiator.lifecycle.util.LifeCycleRequestStatusStatus;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.pdfbox.io.MemoryUsageSetting;
import org.apache.pdfbox.multipdf.PDFMergerUtility;
import org.jooq.Record;
import org.jooq.Result;
import org.json.simple.JSONArray;
Expand All @@ -81,8 +61,27 @@
import org.jsoup.Jsoup;
import org.jsoup.helper.W3CDom;
import org.jsoup.nodes.Document;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.*;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.*;
import java.util.stream.Collectors;

/**
* Manages the query detail view for owners
Expand Down Expand Up @@ -220,7 +219,7 @@ public void init() {
/**
* set the number of queries to be used in the page display
*/
this.NumQueries = DbUtil.getQueryStatsDTOsCount(config, userBean.getUserId(), getFilterTerms());
this.NumQueries = DbUtil.countQueriesForResearcher(config, userBean.getUserId(), getFilterTerms());
} catch (SQLException e) {
e.printStackTrace();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
import de.samply.bbmri.negotiator.model.QueryStatsDTO;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull;
import org.jooq.Record;
import org.jooq.Result;
import org.primefaces.model.FilterMeta;
Expand Down Expand Up @@ -70,8 +69,6 @@ public class ResearcherQueriesBean implements Serializable {
// TODO: set the chunk size static for now, but this should be adopted to display according to the maximum page size
private static final int CHUNK_SIZE = 5;

// Number of all queries for this researcher
// TODO: check if this can be removed
private int queryCount;
// lazy data model to hold the researcher queries
private LazyDataModel<QueryStatsDTO> lazyDataModel;
Expand Down Expand Up @@ -105,8 +102,7 @@ public class ResearcherQueriesBean implements Serializable {
*/
@PostConstruct
public void init() {
// this.queryCount = 10; // set to the count from JOOQ
this.getQueryCount();
countQueries();

this.lazyDataModel = new LazyDataModel<QueryStatsDTO>() {

Expand Down Expand Up @@ -199,163 +195,25 @@ private List<QueryStatsDTO> loadLatestQueryStatsDTO( int offset, int size) {
return queries;
}

public List<Query> loadLatestQueriesOffset( int offset, int size) {
List<Query> queries = new List<Query>() {
@Override
public int size() {
return 0;
}

@Override
public boolean isEmpty() {
return false;
}

@Override
public boolean contains(Object o) {
return false;
}

@NotNull
@Override
public Iterator<Query> iterator() {
return null;
}

@NotNull
@Override
public Object[] toArray() {
return new Object[0];
}

@NotNull
@Override
public <T> T[] toArray(@NotNull T[] ts) {
return null;
}

@Override
public boolean add(Query query) {
return false;
}

@Override
public boolean remove(Object o) {
return false;
}

@Override
public boolean containsAll(@NotNull Collection<?> collection) {
return false;
}

@Override
public boolean addAll(@NotNull Collection<? extends Query> collection) {
return false;
}

@Override
public boolean addAll(int i, @NotNull Collection<? extends Query> collection) {
return false;
}

@Override
public boolean removeAll(@NotNull Collection<?> collection) {
return false;
}

@Override
public boolean retainAll(@NotNull Collection<?> collection) {
return false;
}

@Override
public void clear() {

}

@Override
public Query get(int i) {
return null;
}

@Override
public Query set(int i, Query query) {
return null;
}

@Override
public void add(int i, Query query) {

}

@Override
public Query remove(int i) {
return null;
}

@Override
public int indexOf(Object o) {
return 0;
}

@Override
public int lastIndexOf(Object o) {
return 0;
}

@NotNull
@Override
public ListIterator<Query> listIterator() {
return null;
}

@NotNull
@Override
public ListIterator<Query> listIterator(int i) {
return null;
}

@NotNull
@Override
public List<Query> subList(int i, int i1) {
return null;
}
};
List<QueryStatsDTO> queriesStatusDTO = loadLatestQueryStatsDTO( offset, size);

for ( QueryStatsDTO qso : queriesStatusDTO) {
queries.add( qso.getQuery());
}
return queries;
}

/**
* Load the number of queries "("SELECT COUNT(*) from ..."
* @return int numQueries
*/
public void getQueryCount() {
public void countQueries() {
try( Config config = ConfigFactory.get()) {
this.queryCount = DbUtil.getQueryStatsDTOsCount(config, userBean.getUserId(), getFilterTerms());
this.queryCount = DbUtil.countQueriesForResearcher(config, userBean.getUserId(), getFilterTerms());
} catch (SQLException e) {
System.err.println("ERROR: ResearcherQueriesBean::getQueryCount()");
e.printStackTrace();
}
}

// public List<QueryStatsDTO> getQueries() {
// try(Config config = ConfigFactory.get()) {
// queries = DbUtil.getQueryStatsDTOs(config, userBean.getUserId(), getFilterTerms());
//
// for (int i = 0; i < queries.size(); ++i) {
// getPrivateNegotiationCountAndTime(i);
// getUnreadQueryLifecycleChangesCountAndTime(i);
// }
// } catch (SQLException e) {
// e.printStackTrace();
// }
// return queries;
// }
public int getQueryCount() {
return this.queryCount;
}


public void getPrivateNegotiationCountAndTime(int index){
try(Config config = ConfigFactory.get()) {
Expand Down
Loading

0 comments on commit 0dda697

Please sign in to comment.