use of io.clownfish.clownfish.dbentities.CfList in project Clownfish by rawdog71.
the class GetDatalistHibernate method processRequest.
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param gcp GetContentParameters
* @param response servlet response
* @return GetContentParameters
*/
protected GetContentParameter processRequest(GetContentParameter gcp, HttpServletResponse response) {
DatalistOutput datalistoutput = new DatalistOutput();
ArrayList<ContentOutput> outputlist = new ArrayList<>();
// HashMap<String, String> outputmap;
String inst_name = "";
int range_start = 0;
int range_end = 0;
if (!gcp.getRange().isEmpty()) {
if (gcp.getRange().contains("-")) {
String[] ranges = gcp.getRange().split("-");
range_start = Integer.parseInt(ranges[0]);
range_end = Integer.parseInt(ranges[1]);
if (range_start > range_end) {
int dummy = range_start;
range_start = range_end;
range_end = dummy;
}
} else {
range_start = Integer.parseInt(gcp.getRange());
range_end = range_start;
}
}
outputlist = new ArrayList<>();
// outputmap = new HashMap<>();
apikey = gcp.getApikey();
if (apikeyutil.checkApiKey(apikey, "RestService")) {
name = "";
name = gcp.getListname();
inst_name = name;
CfList cflist = cflistService.findByName(inst_name);
List<CfListcontent> listcontentList = cflistcontentService.findByListref(cflist.getId());
List<CfClasscontent> classcontentList = new ArrayList<>();
for (CfListcontent listcontent : listcontentList) {
CfClasscontent classcontent = cfclasscontentService.findById(listcontent.getCfListcontentPK().getClasscontentref());
if (null != classcontent) {
classcontentList.add(classcontent);
} else {
LOGGER.warn("Classcontent does not exist: " + inst_name + " - " + listcontent.getCfListcontentPK().getClasscontentref());
}
}
for (CfClasscontent classcontent : classcontentList) {
List<CfAttributcontent> attributcontentList = cfattributcontentService.findByClasscontentref(classcontent);
ContentOutput co = new ContentOutput();
co.setIdentifier(classcontent.getName());
co.setKeyvals(contentUtil.getContentOutputKeyval(attributcontentList));
co.setKeywords(contentUtil.getContentOutputKeywords(classcontent, false));
outputlist.add(co);
}
datalistoutput.setCflist(cflist);
datalistoutput.setOutputlist(outputlist);
Gson gson = new Gson();
String json = gson.toJson(datalistoutput);
gcp.setJson(json);
gcp.setReturncode("TRUE");
return gcp;
} else {
gcp.setReturncode("FALSE");
gcp.setJson("[]");
return gcp;
}
}
use of io.clownfish.clownfish.dbentities.CfList in project Clownfish by rawdog71.
the class GetContentCountHibernate method processRequest.
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param gcp GetContentParameters
* @param response servlet response
* @return GetContentParameters
*/
protected GetContentParameter processRequest(GetContentParameter gcp, HttpServletResponse response) {
String inst_klasse;
String inst_identifier;
String inst_datalist;
String inst_apikey = "";
HashMap<String, String> searchmap;
ArrayList<String> searchkeywords;
List<CfListcontent> listcontent = null;
int range_start = 0;
int range_end = 0;
if (!gcp.getRange().isEmpty()) {
if (gcp.getRange().contains("-")) {
String[] ranges = gcp.getRange().split("-");
range_start = Integer.parseInt(ranges[0]);
range_end = Integer.parseInt(ranges[1]);
if (range_start > range_end) {
int dummy = range_start;
range_start = range_end;
range_end = dummy;
}
} else {
range_start = Integer.parseInt(gcp.getRange());
range_end = range_start;
}
}
inst_apikey = gcp.getApikey();
if (apikeyutil.checkApiKey(inst_apikey, "RestService")) {
inst_klasse = gcp.getClassname();
inst_identifier = gcp.getIdentifier();
if (null == inst_identifier) {
inst_identifier = "";
}
inst_datalist = gcp.getListname();
listcontent = null;
if ((null != inst_datalist) && (!inst_datalist.isEmpty())) {
CfList dataList = cflistService.findByName(inst_datalist);
listcontent = cflistcontentService.findByListref(dataList.getId());
}
searchmap = new HashMap<>();
String searches = gcp.getSearches();
if (null != searches) {
String[] keys = searches.split("\\$");
int counter = 0;
for (String key : keys) {
if ((counter > 0) && ((counter % 2) == 0)) {
searchmap.put(keys[counter - 1] + "_" + counter, keys[counter]);
}
counter++;
}
}
searchkeywords = new ArrayList<>();
String keywordlist = gcp.getKeywords();
if (null != keywordlist) {
String[] keys = keywordlist.split("\\$");
int counter = 0;
for (String key : keys) {
if (counter > 0) {
searchkeywords.add(key);
}
counter++;
}
}
Session session_tables = HibernateUtil.getClasssessions().get("tables").getSessionFactory().openSession();
Query query = null;
if (!searchmap.isEmpty()) {
String whereclause = " WHERE ";
for (String searchcontent : searchmap.keySet()) {
String searchcontentval = searchcontent.substring(0, searchcontent.length() - 2);
String searchvalue = searchmap.get(searchcontent);
SearchValues sv = getSearchValues(searchvalue);
switch(sv.getComparartor()) {
case "eq":
whereclause += searchcontentval + " = '" + sv.getSearchvalue() + "' AND ";
break;
case "sw":
whereclause += searchcontentval + " LIKE '" + sv.getSearchvalue() + "%' AND ";
break;
case "ew":
whereclause += searchcontentval + " LIKE '%" + sv.getSearchvalue() + "' AND ";
break;
case "co":
whereclause += searchcontentval + " LIKE '%" + sv.getSearchvalue() + "%' AND ";
break;
case "gt":
whereclause += searchcontentval + " > '" + sv.getSearchvalue() + "' AND ";
break;
case "lt":
whereclause += searchcontentval + " < '" + sv.getSearchvalue() + "' AND ";
break;
case "ne":
whereclause += searchcontentval + " <> '" + sv.getSearchvalue() + "' AND ";
break;
}
}
whereclause = whereclause.substring(0, whereclause.length() - 5);
query = session_tables.createQuery("FROM " + inst_klasse + " c " + whereclause);
} else {
query = session_tables.createQuery("FROM " + inst_klasse + " c ");
}
List<Map> contentliste = (List<Map>) query.getResultList();
session_tables.close();
int listcounter = 0;
for (Map content : contentliste) {
CfClasscontent cfclasscontent = cfclasscontentService.findById((long) content.get("cf_contentref"));
if (null != cfclasscontent) {
if (!cfclasscontent.isScrapped()) {
listcounter++;
}
}
}
HashMap count = new HashMap();
count.put("count", listcounter);
Gson gson = new Gson();
String json = gson.toJson(count);
gcp.setJson(json);
gcp.setReturncode("TRUE");
return gcp;
} else {
gcp.setReturncode("FALSE");
gcp.setJson("[]");
return gcp;
}
}
use of io.clownfish.clownfish.dbentities.CfList in project Clownfish by rawdog71.
the class GetContentHibernate method processRequest.
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param gcp GetContentParameters
* @param response servlet response
* @return GetContentParameters
*/
protected GetContentParameter processRequest(GetContentParameter gcp, HttpServletResponse response) {
String inst_klasse;
String inst_identifier;
String inst_datalist;
String inst_apikey = "";
HashMap<String, String> searchmap;
ArrayList<String> searchkeywords;
HashMap<String, String> outputmap;
ArrayList<ContentDataOutput> outputlist;
List<CfListcontent> listcontent = null;
int range_start = 0;
int range_end = 0;
String range;
range = gcp.getRange() == null ? "" : gcp.getRange();
if (!range.isEmpty()) {
if (range.contains("-")) {
String[] ranges = range.split("-");
range_start = Integer.parseInt(ranges[0]);
range_end = Integer.parseInt(ranges[1]);
if (range_start > range_end) {
int dummy = range_start;
range_start = range_end;
range_end = dummy;
}
} else {
range_start = Integer.parseInt(range);
range_end = range_start;
}
}
outputlist = new ArrayList<>();
outputmap = new HashMap<>();
inst_apikey = gcp.getApikey();
if (apikeyutil.checkApiKey(inst_apikey, "RestService")) {
inst_klasse = gcp.getClassname();
inst_identifier = gcp.getIdentifier();
if (null == inst_identifier) {
inst_identifier = "";
}
inst_datalist = gcp.getListname();
listcontent = null;
if ((null != inst_datalist) && (!inst_datalist.isEmpty())) {
CfList dataList = cflistService.findByName(inst_datalist);
listcontent = cflistcontentService.findByListref(dataList.getId());
}
searchmap = new HashMap<>();
String searches = gcp.getSearches();
if (null != searches) {
String[] keys = searches.split("\\$");
int counter = 1;
for (String key : keys) {
if ((counter > 0) && ((counter % 2) != 0)) {
searchmap.put(keys[counter - 1] + "_" + counter, keys[counter]);
}
counter++;
}
}
searchkeywords = new ArrayList<>();
String keywordlist = gcp.getKeywords();
if (null != keywordlist) {
String[] keys = keywordlist.split("\\$");
int counter = 0;
for (String key : keys) {
if (counter > 0) {
searchkeywords.add(key);
}
counter++;
}
}
Session session_tables = HibernateUtil.getClasssessions().get("tables").getSessionFactory().openSession();
Query query = getQuery(session_tables, searchmap, inst_klasse);
List<Map> contentliste = (List<Map>) query.getResultList();
session_tables.close();
int listcounter = 0;
for (Map content : contentliste) {
CfClasscontent cfclasscontent = cfclasscontentService.findById((long) content.get("cf_contentref"));
if (null != cfclasscontent) {
if (!cfclasscontent.isScrapped()) {
listcounter++;
if (range_start > 0) {
if ((listcounter >= range_start) && (listcounter <= range_end)) {
ContentDataOutput contentdataoutput = new ContentDataOutput();
contentdataoutput.setContent(cfclasscontent);
contentdataoutput.setKeywords(getContentKeywords(cfclasscontent, true));
contentdataoutput.setKeyvals(getContentMap(content));
outputlist.add(contentdataoutput);
}
} else {
ContentDataOutput contentdataoutput = new ContentDataOutput();
contentdataoutput.setContent(cfclasscontent);
contentdataoutput.setKeywords(getContentKeywords(cfclasscontent, true));
contentdataoutput.setKeyvals(getContentMap(content));
outputlist.add(contentdataoutput);
}
}
}
}
boolean found = true;
if (!found) {
outputmap.put("contentfound", "false");
}
Gson gson = new Gson();
String json = gson.toJson(outputlist);
gcp.setJson(json);
gcp.setReturncode("TRUE");
return gcp;
} else {
gcp.setReturncode("FALSE");
gcp.setJson("[]");
return gcp;
}
}
use of io.clownfish.clownfish.dbentities.CfList in project Clownfish by rawdog71.
the class GetDatalist method processRequest.
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response) {
DatalistOutput datalistoutput = new DatalistOutput();
ArrayList<ContentOutput> outputlist = new ArrayList<>();
String inst_apikey = "";
String inst_name = "";
Map<String, String[]> parameters = request.getParameterMap();
parameters.keySet().stream().filter((paramname) -> (paramname.compareToIgnoreCase("apikey") == 0)).map((paramname) -> parameters.get(paramname)).forEach((values) -> {
apikey = values[0];
});
inst_apikey = apikey;
if (apikeyutil.checkApiKey(inst_apikey, "RestService")) {
name = "";
parameters.keySet().stream().filter((paramname) -> (paramname.compareToIgnoreCase("name") == 0)).map((paramname) -> parameters.get(paramname)).forEach((values) -> {
name = values[0];
});
inst_name = name;
CfList cflist = cflistService.findByName(inst_name);
List<CfListcontent> listcontentList = cflistcontentService.findByListref(cflist.getId());
List<CfClasscontent> classcontentList = new ArrayList<>();
for (CfListcontent listcontent : listcontentList) {
CfClasscontent classcontent = cfclasscontentService.findById(listcontent.getCfListcontentPK().getClasscontentref());
if (null != classcontent) {
classcontentList.add(classcontent);
} else {
LOGGER.warn("Classcontent does not exist: " + inst_name + " - " + listcontent.getCfListcontentPK().getClasscontentref());
}
}
for (CfClasscontent classcontent : classcontentList) {
List<CfAttributcontent> attributcontentList = cfattributcontentService.findByClasscontentref(classcontent);
ContentOutput co = new ContentOutput();
co.setIdentifier(classcontent.getName());
co.setKeyvals(contentUtil.getContentOutputKeyval(attributcontentList));
co.setKeywords(contentUtil.getContentOutputKeywords(classcontent, false));
outputlist.add(co);
}
datalistoutput.setCflist(cflist);
datalistoutput.setOutputlist(outputlist);
Gson gson = new Gson();
String json = gson.toJson(datalistoutput);
response.setContentType("application/json;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
out.print(json);
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
}
} else {
PrintWriter out = null;
try {
out = response.getWriter();
out.print("Wrong API KEY");
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
} finally {
out.close();
}
}
}
use of io.clownfish.clownfish.dbentities.CfList in project Clownfish by rawdog71.
the class ContentUtil method setAttributValue.
public CfAttributcontent setAttributValue(CfAttributcontent selectedAttribut, String editContent) {
if (null == editContent) {
editContent = "";
}
try {
switch(selectedAttribut.getAttributref().getAttributetype().getName()) {
case "boolean":
selectedAttribut.setContentBoolean(Boolean.valueOf(editContent));
break;
case "string":
if (editContent.length() > 255) {
editContent = editContent.substring(0, 255);
}
if (selectedAttribut.getAttributref().getIdentity() == true) {
List<CfClasscontent> classcontentlist2 = cfclasscontentService.findByClassref(selectedAttribut.getClasscontentref().getClassref());
boolean found = false;
for (CfClasscontent classcontent : classcontentlist2) {
try {
CfAttributcontent attributcontent = cfattributcontentService.findByAttributrefAndClasscontentref(selectedAttribut.getAttributref(), classcontent);
if (attributcontent.getContentString().compareToIgnoreCase(editContent) == 0) {
found = true;
}
} catch (javax.persistence.NoResultException | NullPointerException ex) {
LOGGER.error(ex.getMessage());
}
}
if (!found) {
selectedAttribut.setContentString(editContent);
}
} else {
selectedAttribut.setContentString(editContent);
}
break;
case "hashstring":
String salt = PasswordUtil.getSalt(30);
selectedAttribut.setContentString(PasswordUtil.generateSecurePassword(editContent, salt));
selectedAttribut.setSalt(salt);
break;
case "integer":
selectedAttribut.setContentInteger(BigInteger.valueOf(Long.parseLong(editContent)));
break;
case "real":
selectedAttribut.setContentReal(Double.parseDouble(editContent));
break;
case "htmltext":
selectedAttribut.setContentText(editContent);
break;
case "text":
selectedAttribut.setContentText(editContent);
break;
case "markdown":
selectedAttribut.setContentText(editContent);
break;
case "datetime":
Date datum;
DateTimeFormatter fmt = DateTimeFormat.forPattern("dd.MM.yyyy").withZone(DateTimeZone.forID("Europe/Berlin"));
try {
datum = DateTime.parse(editContent, fmt).toDate();
selectedAttribut.setContentDate(datum);
} catch (IllegalArgumentException ex) {
try {
fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS").withZone(DateTimeZone.forID("Europe/Berlin"));
datum = DateTime.parse(editContent, fmt).toDate();
selectedAttribut.setContentDate(datum);
} catch (IllegalArgumentException ex2) {
fmt = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss").withZone(DateTimeZone.forID("Europe/Berlin"));
datum = DateTime.parse(editContent, fmt).toDate();
selectedAttribut.setContentDate(datum);
}
}
break;
case "media":
if (null != editContent) {
try {
CfAsset asset = cfassetService.findByName(editContent);
selectedAttribut.setContentInteger(BigInteger.valueOf(asset.getId()));
} catch (Exception ex) {
selectedAttribut.setContentInteger(null);
LOGGER.error("INSERTCONTENT: Media " + editContent + " not found!");
}
} else {
selectedAttribut.setContentInteger(null);
}
break;
case "classref":
if (null != editContent) {
CfList list_ref = cflistService.findById(Long.parseLong(editContent));
selectedAttribut.setClasscontentlistref(list_ref);
}
break;
case "assetref":
if (null != editContent) {
CfAssetlist assetlist_ref = cfassetlistService.findById(Long.parseLong(editContent));
selectedAttribut.setAssetcontentlistref(assetlist_ref);
}
break;
}
selectedAttribut.setIndexed(false);
return selectedAttribut;
} catch (NullPointerException ex) {
LOGGER.warn(ex.getMessage());
return selectedAttribut;
}
}
Aggregations