use of io.clownfish.clownfish.datamodels.RestContentParameter in project Clownfish by rawdog71.
the class RestContent method insertContent.
private RestContentParameter insertContent(RestContentParameter icp) {
try {
String token = icp.getToken();
if (authtokenlist.checkValidToken(token)) {
String apikey = icp.getApikey();
if (apikeyutil.checkApiKey(apikey, "RestService")) {
CfClass clazz = cfclassService.findByName(icp.getClassname());
try {
CfClasscontent classcontent = cfclasscontentService.findByName(icp.getContentname().trim().replaceAll("\\s+", "_"));
LOGGER.warn("Duplicate Classcontent");
icp.setReturncode("Duplicate Classcontent");
} catch (javax.persistence.NoResultException ex) {
CfClasscontent newclasscontent = new CfClasscontent();
newclasscontent.setName(icp.getContentname().trim().replaceAll("\\s+", "_"));
newclasscontent.setClassref(clazz);
CfClasscontent newclasscontent2 = cfclasscontentService.create(newclasscontent);
hibernateUtil.insertContent(newclasscontent);
List<CfAttribut> attributlist = cfattributService.findByClassref(newclasscontent2.getClassref());
attributlist.stream().forEach((attribut) -> {
if (attribut.getAutoincrementor() == true) {
List<CfClasscontent> classcontentlist2 = cfclasscontentService.findByClassref(newclasscontent2.getClassref());
long max = 0;
int last = classcontentlist2.size();
if (1 == last) {
max = 0;
} else {
CfClasscontent classcontent = classcontentlist2.get(last - 2);
CfAttributcontent attributcontent = cfattributcontentService.findByAttributrefAndClasscontentref(attribut, classcontent);
if (attributcontent.getContentInteger().longValue() > max) {
max = attributcontent.getContentInteger().longValue();
}
}
CfAttributcontent newcontent = new CfAttributcontent();
newcontent.setAttributref(attribut);
newcontent.setClasscontentref(newclasscontent);
newcontent.setContentInteger(BigInteger.valueOf(max + 1));
CfAttributcontent newcontent2 = cfattributcontentService.create(newcontent);
icp.getAttributmap().put(attribut.getName(), newcontent2.getContentInteger().toString());
icp.setReturncode("OK");
} else {
CfAttributcontent newcontent = new CfAttributcontent();
newcontent.setAttributref(attribut);
newcontent.setClasscontentref(newclasscontent);
newcontent = contentUtil.setAttributValue(newcontent, icp.getAttributmap().get(attribut.getName()));
cfattributcontentService.create(newcontent);
if (icp.isIndexing()) {
contentUtil.indexContent();
}
icp.setReturncode("OK");
}
});
hibernateUtil.updateContent(newclasscontent);
}
} else {
icp.setReturncode("Wrong API KEY");
}
} else {
icp.setReturncode("Invalid token");
}
} catch (javax.persistence.NoResultException ex) {
LOGGER.error("NoResultException");
icp.setReturncode("NoResultException");
}
return icp;
}
use of io.clownfish.clownfish.datamodels.RestContentParameter in project Clownfish by rawdog71.
the class InsertContent method insertContent.
private RestContentParameter insertContent(RestContentParameter icp, HttpServletResponse response) throws IOException {
try {
String apikey = icp.getApikey();
if (apikeyutil.checkApiKey(apikey, "RestService")) {
CfClass clazz = cfclassService.findByName(icp.getClassname());
try {
CfClasscontent classcontent = cfclasscontentService.findByName(icp.getContentname());
response.getOutputStream().println("Duplicate Classcontent: " + icp.getContentname());
icp.setReturncode("NOK");
} catch (javax.persistence.NoResultException ex) {
try {
CfClasscontent newclasscontent = new CfClasscontent();
newclasscontent.setName(icp.getContentname());
newclasscontent.setClassref(clazz);
CfClasscontent newclasscontent2 = cfclasscontentService.create(newclasscontent);
hibernateUtil.insertContent(newclasscontent);
response.getOutputStream().println(newclasscontent.getName());
List<CfAttribut> attributlist = cfattributService.findByClassref(newclasscontent2.getClassref());
attributlist.stream().forEach((attribut) -> {
if (attribut.getAutoincrementor() == true) {
List<CfClasscontent> classcontentlist2 = cfclasscontentService.findByClassref(newclasscontent2.getClassref());
long max = 0;
int last = classcontentlist2.size();
if (1 == last) {
max = 0;
} else {
CfClasscontent classcontent = classcontentlist2.get(last - 2);
CfAttributcontent attributcontent = cfattributcontentService.findByAttributrefAndClasscontentref(attribut, classcontent);
if (attributcontent.getContentInteger().longValue() > max) {
max = attributcontent.getContentInteger().longValue();
}
}
CfAttributcontent newcontent = new CfAttributcontent();
newcontent.setAttributref(attribut);
newcontent.setClasscontentref(newclasscontent);
newcontent.setContentInteger(BigInteger.valueOf(max + 1));
cfattributcontentService.create(newcontent);
} else {
CfAttributcontent newcontent = new CfAttributcontent();
newcontent.setAttributref(attribut);
newcontent.setClasscontentref(newclasscontent);
newcontent = contentUtil.setAttributValue(newcontent, icp.getAttributmap().get(attribut.getName()));
cfattributcontentService.create(newcontent);
contentUtil.indexContent();
}
});
hibernateUtil.updateContent(newclasscontent);
} catch (IOException ex1) {
LOGGER.error(ex1.getMessage());
}
} catch (IOException ex) {
LOGGER.error(ex.getMessage());
}
} else {
try {
response.getOutputStream().println("Wrong API KEY");
} catch (IOException ex1) {
LOGGER.error(ex1.getMessage());
}
}
} catch (javax.persistence.NoResultException ex) {
try {
response.getOutputStream().println("Class not found: " + icp.getClassname());
} catch (IOException ex1) {
LOGGER.error(ex1.getMessage());
}
}
return icp;
}
use of io.clownfish.clownfish.datamodels.RestContentParameter in project Clownfish by rawdog71.
the class ClassUtil method jsonImport.
public List<CfAttributcontent> jsonImport(String jsoncontent) {
ArrayList<CfAttributcontent> attributcontentlist = new ArrayList<>();
Gson gson = new Gson();
RestContentParameter contentparameter = gson.fromJson(jsoncontent, RestContentParameter.class);
CfClass clazz = cfclassService.findByName(contentparameter.getClassname());
List<CfAttribut> attributlist = cfattributService.findByClassref(clazz);
for (String key : contentparameter.getAttributmap().keySet()) {
CfAttribut attribut = getAttributFromAttributlist(attributlist, key);
CfAttributcontent attributcontent = new CfAttributcontent();
attributcontent.setAttributref(attribut);
switch(attribut.getAttributetype().getName()) {
case "boolean":
attributcontent.setContentBoolean(true);
break;
case "string":
case "hashstring":
attributcontent.setContentString(contentparameter.getAttributmap().get(key));
break;
case "integer":
attributcontent.setContentInteger(BigInteger.valueOf(Long.parseLong(contentparameter.getAttributmap().get(key))));
break;
case "real":
attributcontent.setContentReal(Double.parseDouble(contentparameter.getAttributmap().get(key)));
break;
case "htmltext":
case "text":
case "markdown":
attributcontent.setContentText(contentparameter.getAttributmap().get(key));
break;
case "datetime":
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.GERMAN);
Date date;
try {
date = formatter.parse(contentparameter.getAttributmap().get(key));
attributcontent.setContentDate(date);
} catch (ParseException ex) {
java.util.logging.Logger.getLogger(ClassUtil.class.getName()).log(Level.SEVERE, null, ex);
}
break;
case "media":
CfAsset asset = cfassetService.findByName(contentparameter.getAttributmap().get(key));
attributcontent.setContentInteger(BigInteger.valueOf(asset.getId()));
break;
case "classref":
try {
CfList list = cflistService.findByName(contentparameter.getAttributmap().get(key));
attributcontent.setClasscontentlistref(list);
} catch (Exception ex) {
attributcontent.setClasscontentlistref(null);
}
break;
case "assetref":
try {
CfAssetlist assetlist = cfassetlistService.findByName(contentparameter.getAttributmap().get(key));
attributcontent.setAssetcontentlistref(assetlist);
} catch (Exception ex) {
attributcontent.setAssetcontentlistref(null);
}
break;
}
attributcontentlist.add(attributcontent);
}
return attributcontentlist;
}
use of io.clownfish.clownfish.datamodels.RestContentParameter in project Clownfish by rawdog71.
the class ClassUtil method jsonExport.
public String jsonExport(CfClasscontent classcontent, List<CfAttributcontent> attributcontentlist) {
RestContentParameter contentparameter = new RestContentParameter();
contentparameter.setClassname(classcontent.getClassref().getName());
contentparameter.setContentname(classcontent.getName());
for (CfAttributcontent attributcontent : attributcontentlist) {
switch(attributcontent.getAttributref().getAttributetype().getName()) {
case "boolean":
if (null != attributcontent.getContentBoolean()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentBoolean().toString());
}
break;
case "string":
if (null != attributcontent.getContentString()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentString());
}
break;
case "hashstring":
if (null != attributcontent.getContentString()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentString());
}
break;
case "integer":
if (null != attributcontent.getContentInteger()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentInteger().toString());
}
break;
case "real":
if (null != attributcontent.getContentReal()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentReal().toString());
}
break;
case "htmltext":
if (null != attributcontent.getContentText()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentText());
}
break;
case "text":
if (null != attributcontent.getContentText()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentText());
}
break;
case "markdown":
if (null != attributcontent.getContentText()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentText());
}
break;
case "datetime":
if (null != attributcontent.getContentDate()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getContentDate().toString());
}
break;
case "media":
if (null != attributcontent.getContentInteger()) {
CfAsset asset = cfassetService.findById(attributcontent.getContentInteger().longValue());
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), asset.getName());
}
break;
case "classref":
if (null != attributcontent.getClasscontentlistref()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getClasscontentlistref().getName());
}
break;
case "assetref":
if (null != attributcontent.getAssetcontentlistref()) {
contentparameter.getAttributmap().put(attributcontent.getAttributref().getName(), attributcontent.getAssetcontentlistref().getName());
}
break;
}
}
Gson gson = new Gson();
return gson.toJson(contentparameter);
}
use of io.clownfish.clownfish.datamodels.RestContentParameter in project Clownfish by rawdog71.
the class InsertContent method doPost.
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuffer jb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null) {
jb.append(line);
}
} catch (IOException e) {
LOGGER.error(e.getMessage());
}
Gson gson = new Gson();
RestContentParameter icp = gson.fromJson(jb.toString(), RestContentParameter.class);
insertContent(icp, response);
}
Aggregations