Commit d2c4fdf5 by Jorem Magcawas

FIX METRICS

parent d7b50cde
......@@ -17,5 +17,3 @@ GET_ROLE_RIGHTS_URL=http://localhost:8080/gfs-explorer/svc/gfs-rest/rights/
CHECK_RIGHT_URL=http://localhost:8080/gfs-explorer/svc/gfs-rest/check-right/
GET_SUB_URL=http://localhost:8080/gfs-explorer/svc/gfs-rest/get-sub/
[GDE_URL]
METRICS_DIR=C:\\Users\\jmagcawas\\git\\web-ui\\WebGde\\WebContent\\metrics\\
......@@ -151,13 +151,12 @@ const saveMetrics = async (metrics, eoe_ts) => {
// body: formData
var myObject = {
"metrics_dir": METRIC_FILES,
"metrics_dir": sessionStorage.getItem("element_file_loc"),
"file_name" : sessionStorage.getItem('user_id') + '_Metrics_' + (new Date()).toISOString().slice(0, 10).replace(/-/g, "") + ".csv",
"metrics_rate" : metrics.rate,
"eoe_ts" : eoe_ts
};
//fetch('./src/captureMetrics/saveMetrics.php', {
fetch('http://35.169.23.0:8080/WebGde/svc/gfs-rest/write-mertrics/', {
method: 'POST',
headers: {
......
......@@ -23,9 +23,7 @@ public enum AppConfig {
SOLR_CORE_NAME("SOLR_CORE_NAME"),
SOLR_IDKEY("SOLR_IDKEY"),
MENU_PROPERTIES("MENU_PROPERTIES"),
METRICS_DIR("METRICS_DIR");
MENU_PROPERTIES("MENU_PROPERTIES");
private String value = "";
private static Properties properties;
......
......@@ -9,7 +9,11 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.TimeZone;
import javax.json.JsonObject;
import javax.ws.rs.Consumes;
......@@ -31,17 +35,15 @@ import com.svi.template.restservice.globals.AppConfig;
import com.svi.webgde.restservice.object.XMLContents;
import com.svi.webgde.restservice.utils.XMLUtil;
@Path("/gfs-rest")
public class GDEWebServices {
@GET
@Path("/test")
public Response testWebservice() {
return Response.ok("test webservice").build();
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_OCTET_STREAM)
......@@ -105,7 +107,7 @@ public class GDEWebServices {
String response = "";
try {
File file = new File(xml.getOutputDir());
if(!file.exists()) {
if (!file.exists()) {
response = XMLUtil.generateXML(xml);
} else {
response = XMLUtil.udpateXML(xml);
......@@ -115,84 +117,92 @@ public class GDEWebServices {
}
return Response.ok(response).build();
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/write-mertrics")
public Response writeCSVMetrics(JsonObject jsonObject) {
String myfolder = AppConfig.METRICS_DIR.getValue();
SimpleDateFormat isoFormat = new SimpleDateFormat("MM-dd-yyyy_HH.mm.ss");
isoFormat.setTimeZone(TimeZone.getTimeZone("Asia/Manila"));
Date date = new Date();
String now;
now = isoFormat.format(date);
String myfolder = jsonObject.getString("metrics_dir").trim() + File.separator
+ jsonObject.getString("file_name").trim().split("_Metrics")[0] + "_" + now;
File folderFile = new File(myfolder);
if(!folderFile.exists()) {
if (!folderFile.exists()) {
folderFile.mkdir();
}
String metricFile = myfolder + "/" + jsonObject.getString("file_name").trim();
}
String metricFile = myfolder + File.separator + jsonObject.getString("file_name").trim();
File file = new File(metricFile);
int record_count = 1;
if (!file.exists()) {
try {
FileWriter outputfile = new FileWriter(file);
CSVWriter writer = new CSVWriter(outputfile);
String[] header = {"record_no", "filename", "speed", "eoe_timestamp", "avg_speed"};
writer.writeNext(header);
String[] data = { Integer.toString(record_count), jsonObject.getString("file_name"), jsonObject.get("metrics_rate").toString(), jsonObject.getString("eoe_ts"), jsonObject.get("metrics_rate").toString()};
writer.writeNext(data);
writer.flush();
writer.close();
}
catch (IOException e) {
e.printStackTrace();
return Response.status(500).entity("Fail").build();
}
}else {
CSVReader reader = null;
if (!file.exists()) {
try {
FileWriter outputfile = new FileWriter(file);
CSVWriter writer = new CSVWriter(outputfile);
String[] header = { "record_no", "filename", "speed", "eoe_timestamp", "avg_speed" };
writer.writeNext(header);
String[] data = { Integer.toString(record_count), jsonObject.getString("file_name"),
jsonObject.get("metrics_rate").toString(), jsonObject.getString("eoe_ts"),
jsonObject.get("metrics_rate").toString() };
writer.writeNext(data);
writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
return Response.status(500).entity("Fail").build();
}
} else {
CSVReader reader = null;
int linecount = 0;
try {
reader = new CSVReader(new FileReader(metricFile));
String [] nextLine;
String [] lastLine = null;
//read one line at a time
while ((nextLine = reader.readNext()) != null)
{
linecount = linecount + 1;
lastLine = nextLine;
}
float size = linecount - 1;
int lastRecordIndex = Integer.parseInt(lastLine[0]);
BigDecimal metric = new BigDecimal(lastLine[2]);//speed
BigDecimal average = new BigDecimal(lastLine[4]);//average speed
float newAvg = ((average.floatValue() * size) + metric.floatValue()) / (size + 1);
FileWriter outputfile = new FileWriter(file,true);
CSVWriter writer = new CSVWriter(outputfile);
String[] data = { Integer.toString(lastRecordIndex + 1), jsonObject.getString("file_name"), jsonObject.get("metrics_rate").toString(), jsonObject.getString("eoe_ts"), String.valueOf(newAvg)};
writer.writeNext(data);
writer.flush();
writer.close();
return Response.ok("Metrics Updated").build();
}
catch (IOException e) {
e.printStackTrace();
return Response.status(500).entity("Fail").build();
}
try {
reader = new CSVReader(new FileReader(metricFile));
String[] nextLine;
String[] lastLine = null;
// read one line at a time
while ((nextLine = reader.readNext()) != null) {
linecount = linecount + 1;
lastLine = nextLine;
}
float size = linecount - 1;
int lastRecordIndex = Integer.parseInt(lastLine[0]);
BigDecimal metric = new BigDecimal(lastLine[2]);// speed
BigDecimal average = new BigDecimal(lastLine[4]);// average speed
float newAvg = ((average.floatValue() * size) + metric.floatValue()) / (size + 1);
FileWriter outputfile = new FileWriter(file, true);
CSVWriter writer = new CSVWriter(outputfile);
String[] data = { Integer.toString(lastRecordIndex + 1), jsonObject.getString("file_name"),
jsonObject.get("metrics_rate").toString(), jsonObject.getString("eoe_ts"),
String.valueOf(newAvg) };
writer.writeNext(data);
writer.flush();
writer.close();
return Response.ok("Metrics Updated").build();
} catch (IOException e) {
e.printStackTrace();
return Response.status(500).entity("Fail").build();
}
}
return Response.ok("Metrics Saved").build();
}
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/update-eob")
public Response updateEOB(XMLContents xml) {
try {
XMLUtil.updateEOB(xml);
} catch (Exception e) {
return Response.status(500).entity("Fail").build();
}
return Response.ok("Success").build();
}
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@Path("/update-eob")
public Response updateEOB(XMLContents xml) {
try {
XMLUtil.updateEOB(xml);
} catch (Exception e) {
return Response.status(500).entity("Fail").build();
}
return Response.ok("Success").build();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment