diff --git a/client/coffee/controllers/documentCtrl.coffee b/client/coffee/controllers/documentCtrl.coffee index 33e42ec..36ed69f 100644 --- a/client/coffee/controllers/documentCtrl.coffee +++ b/client/coffee/controllers/documentCtrl.coffee @@ -25,6 +25,7 @@ root.controllers.controller('documentCtrl', ['$scope', '$routeParams', '$locatio util.get(url).then((res) -> $scope.doc = res.data.document $scope.meta = res.data.meta + $scope.enlapsed_time = res.data.enlapsed_time ).catch( (res) -> if res.data.error == "not found" $scope.notfound = true diff --git a/client/partials/document.html b/client/partials/document.html index 01805f2..3b8cd81 100644 --- a/client/partials/document.html +++ b/client/partials/document.html @@ -41,3 +41,8 @@ +
+
+ took {{enlapsed_time}} seconds +
+
\ No newline at end of file diff --git a/handlerWrapper.go b/handlerWrapper.go index e3e1d41..d3f92f7 100644 --- a/handlerWrapper.go +++ b/handlerWrapper.go @@ -4,6 +4,7 @@ import ( "encoding/json" "log" "net/http" + "time" ) type errorWrapper struct { @@ -12,9 +13,17 @@ type errorWrapper struct { type ApiHandler func(w http.ResponseWriter, request *http.Request) (interface{}, error) +func (this ApiHandler) addEnlapsedTimeIfPossible(enlapsedTime time.Duration, obj interface{}) { + if dict, ok := obj.(map[string]interface{}); ok { + dict["enlapsed_time"] = enlapsedTime.Seconds() + } + +} func (this ApiHandler) ServeHTTP(w http.ResponseWriter, request *http.Request) { log.Println("request for", request.URL) + t := time.Now() ret, err := this(w, request) + this.addEnlapsedTimeIfPossible(time.Since(t), ret) if err != nil { log.Println(err) ret = &errorWrapper{err.Error()}