Kaynağa Gözat

tests: save measured time to db (file)

Bernadette Elena Hammerle 3 yıl önce
ebeveyn
işleme
844a5c1c12

+ 11 - 0
src/database/databaseInterface.py

@@ -28,5 +28,16 @@ def set_path():
     return "ok", 200
 
 
+@app.route("/set-time", methods=["POST"])
+def set_time():
+    data = request.json
+    filePath = Path(DIRECTORY, "time.json")
+    with open(filePath, "r") as timeFile:
+        timeList = json.load(timeFile)
+    timeList.append(data)
+    with open(filePath, "w") as timeFile:
+        json.dump(timeList, timeFile, indent=2)
+    return "ok", 200
+
 if __name__=="__main__":
     app.run(host='0.0.0.0')

+ 24 - 0
src/helpers/dbHelpers.js

@@ -57,4 +57,28 @@ export function savePathToDb(){
     }, err => {
       console.log(err)
     })
+}
+
+
+export function saveTimeToDb(data){
+  let json = JSON.stringify(data)
+  let reqOptions = {
+    method: 'POST',
+    headers: {
+      'Accept': 'application/json',
+      'Content-Type': 'application/json',
+    },
+    body: json
+  }
+
+  return fetch("http://localhost:5000/set-time", reqOptions)
+    .then(res => {
+      if(res.status >= 400) {
+        console.log(res.text)
+          throw new Error("Server responds with error!");
+      }
+      return res.text();
+    }, err => {
+      console.log(err)
+    })
 }

+ 26 - 17
src/helpers/measureTime.js

@@ -1,18 +1,27 @@
-  export const measureTime = (self) => {
-    return (profilerId, mode, actualTime, baseTime, startTime, commitTime) => {
-//      if(mode==="mount"){
-//        console.log({profilerId, mode, actualTime, baseTime, startTime, commitTime});
-      let prevContent = self.measurementsDiv.current.innerHTML
-      self.measurementsDiv.current.innerHTML = `
-          ${prevContent}<br/>
-          Mode: ${mode}<br/>
-          Actual Time: ${actualTime.toFixed(3)} ms<br/>
-          ------------------------
-          `
-//          <br/>
-//          Base Time: ${baseTime}<br/>
-//          Start Time: ${startTime}<br/>
-//          Commit Time: ${commitTime}
+import {saveTimeToDb} from "../helpers/dbHelpers";
+
+export const measureTime = (self, noOfMarkers, markerType) => {
+  return (profilerId, mode, actualTime, baseTime, startTime, commitTime) => {
+    let prevContent = self.measurementsDiv.current.innerHTML
+
+    // save time to database
+    if(noOfMarkers!=="" & mode!=="mount" & (
+      (profilerId!=="google" & prevContent==="") |
+      (profilerId==="google" & prevContent!=="" & prevContent.length < 150 & !prevContent.includes("mount")))){
+      let json = {
+        "id": profilerId,
+        "time": actualTime,
+        "markers": noOfMarkers,
+        "type": markerType
       }
-//    }
-  }
+      saveTimeToDb(json)
+    }
+
+    self.measurementsDiv.current.innerHTML = `
+        ${prevContent}<br/>
+        Mode: ${mode}<br/>
+        Actual Time: ${actualTime.toFixed(3)} ms<br/>
+        ------------------------
+        `
+  }
+}

+ 1 - 1
src/test/Googles.js

@@ -51,7 +51,7 @@ export default class Googles extends React.Component{
         </div>
 
         <div className="mapTest">
-          <Profiler id="google" onRender={measureTime(this)}>
+          <Profiler id="google" onRender={measureTime(this, this.state.noOfMarkers)}>
             <Google markers={this.state.markers}/>
           </Profiler>
         </div>

+ 1 - 1
src/test/Leaflets.js

@@ -50,7 +50,7 @@ export default class Leaflets extends React.Component{
         </div>
 
         <div className="mapTest">
-          <Profiler id="leaflet" onRender={measureTime(this)}>
+          <Profiler id="leaflet" onRender={measureTime(this, this.state.noOfMarkers)}>
             <Leaflet markers={this.state.markers}/>
           </Profiler>
         </div>

+ 1 - 1
src/test/MapGLs.js

@@ -54,7 +54,7 @@ export default class MapGLs extends React.Component{
         </div>
 
         <div className="mapTest">
-          <Profiler id="mapgl" onRender={measureTime(this)}>
+          <Profiler id="mapgl" onRender={measureTime(this, this.state.noOfMarkers, this.state.markerType)}>
             <MapGL markers={this.state.markers}/>
           </Profiler>
         </div>

+ 1 - 1
src/test/Mapboxes.js

@@ -70,7 +70,7 @@ export default class MapGLs extends React.Component{
         </div>
 
         <div className="mapTest">
-          <Profiler id="mapbox" onRender={measureTime(this)}>
+          <Profiler id="mapbox" onRender={measureTime(this, this.state.noOfMarkers, this.state.markerType)}>
             <Mapbox markers={this.state.markers} markerType={this.state.markerType}/>
           </Profiler>
         </div>

+ 1 - 1
src/test/Pigeons.js

@@ -50,7 +50,7 @@ export default class Pigeons extends React.Component{
         </div>
 
         <div className="mapTest">
-          <Profiler id="pigeons" onRender={measureTime(this)}>
+          <Profiler id="pigeons" onRender={measureTime(this, this.state.noOfMarkers)}>
             <Pigeon markers={this.state.markers}/>
           </Profiler>
         </div>