Loading app/controllers/RestController.scala +23 −1 Original line number Diff line number Diff line package controllers import java.sql.Date import java.text.SimpleDateFormat import javax.inject.Inject import controllers.auth.AuthenticationModule import dao.{RestHistoryDAO, RestRequest} import elastic.{ElasticClient, Error, Success} import models.{CerebroResponse, ClusterMapping, Hosts} import play.api.libs.json.{JsArray, Json} import play.api.libs.json.{JsArray, JsString, Json} import scala.concurrent.ExecutionContext.Implicits.global import scala.util.control.NonFatal class RestController @Inject()(val authentication: AuthenticationModule, val hosts: Hosts, Loading Loading @@ -38,4 +40,24 @@ class RestController @Inject()(val authentication: AuthenticationModule, } } def history = process { request => implicit val writes = Json.writes[RestRequest] val dateFormat = new SimpleDateFormat("dd/MM HH:mm:ss") restHistoryDAO.all(request.user.map(_.name).getOrElse("")).map { case requests => val body = requests.map { request => Json.obj( "path" -> JsString(request.path), "method" -> JsString(request.method), "body" -> JsString(request.body), "created_at" -> JsString(dateFormat.format(request.createdAt)) ) } CerebroResponse(200, JsArray(body)) }.recover { case NonFatal(e) => CerebroResponse(500, Json.obj("Error" -> JsString(s"Error while loading requests history: ${e.getMessage}"))) } } } conf/routes +1 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ POST /aliases/get_aliases controllers.AliasesControl POST /aliases/update_aliases controllers.AliasesController.updateAliases # Rest module POST /rest/history controllers.RestController.history POST /rest/request controllers.RestController.request POST /rest controllers.RestController.index Loading public/js/app.js +22 −0 Original line number Diff line number Diff line Loading @@ -1151,6 +1151,24 @@ angular.module('cerebro').controller('RestController', ['$scope', '$http', ); }; $scope.loadRequest = function(request) { $scope.method = request.method; $scope.path = request.path; $scope.editor.setValue(request.body); $scope.editor.format(); }; $scope.loadHistory = function() { RestDataService.history( function(history) { $scope.history = history; }, function(error) { AlertService.error('Error while loading request history', error); } ); }; $scope.updateOptions = function(text) { if ($scope.mappings) { var autocomplete = new URLAutocomplete($scope.mappings); Loading Loading @@ -1191,6 +1209,10 @@ angular.module('cerebro').factory('RestDataService', ['DataService', DataService.send('/rest', {}, success, error); }; this.history = function(success, error) { DataService.send('/rest/history', {}, success, error); }; this.execute = function(method, path, data, success, error) { var requestData = {method: method, data: data, path: path}; DataService.send('/rest/request', requestData, success, error); Loading public/rest.html +20 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,26 @@ </select> </div> </div> <div class="row"> <div class="col-xs-12"> <a data-toggle="collapse" data-parent="#restAccordion" target="_self" href="#restHistory" ng-click="loadHistory()"> <i class="fa fa-history"></i> previous requests </a> </div> <div class="col-xs-12 panel-collapse collapse" id="restHistory" ng-show="history.length"> <a data-toggle="collapse" data-parent="#restAccordion" target="_self" href="#restHistory"> <span> <table class="table table-condensed"> <tr ng-repeat="h in history" class="normal-action" ng-click="loadRequest(h)"> <td style="width: 130px">{{h.created_at}}</td> <td style="width: 1%">{{h.method}}</td> <td>{{h.path}}</td> </tr> </table> </span> </a> </div> </div> <div class="form-group row"> <div class="col-lg-12"> <div id="rest-client-editor" class="ace-cerebro" style="height: 600px;"></div> Loading src/app/components/rest/controller.js +18 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,24 @@ angular.module('cerebro').controller('RestController', ['$scope', '$http', ); }; $scope.loadRequest = function(request) { $scope.method = request.method; $scope.path = request.path; $scope.editor.setValue(request.body); $scope.editor.format(); }; $scope.loadHistory = function() { RestDataService.history( function(history) { $scope.history = history; }, function(error) { AlertService.error('Error while loading request history', error); } ); }; $scope.updateOptions = function(text) { if ($scope.mappings) { var autocomplete = new URLAutocomplete($scope.mappings); Loading Loading
app/controllers/RestController.scala +23 −1 Original line number Diff line number Diff line package controllers import java.sql.Date import java.text.SimpleDateFormat import javax.inject.Inject import controllers.auth.AuthenticationModule import dao.{RestHistoryDAO, RestRequest} import elastic.{ElasticClient, Error, Success} import models.{CerebroResponse, ClusterMapping, Hosts} import play.api.libs.json.{JsArray, Json} import play.api.libs.json.{JsArray, JsString, Json} import scala.concurrent.ExecutionContext.Implicits.global import scala.util.control.NonFatal class RestController @Inject()(val authentication: AuthenticationModule, val hosts: Hosts, Loading Loading @@ -38,4 +40,24 @@ class RestController @Inject()(val authentication: AuthenticationModule, } } def history = process { request => implicit val writes = Json.writes[RestRequest] val dateFormat = new SimpleDateFormat("dd/MM HH:mm:ss") restHistoryDAO.all(request.user.map(_.name).getOrElse("")).map { case requests => val body = requests.map { request => Json.obj( "path" -> JsString(request.path), "method" -> JsString(request.method), "body" -> JsString(request.body), "created_at" -> JsString(dateFormat.format(request.createdAt)) ) } CerebroResponse(200, JsArray(body)) }.recover { case NonFatal(e) => CerebroResponse(500, Json.obj("Error" -> JsString(s"Error while loading requests history: ${e.getMessage}"))) } } }
conf/routes +1 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ POST /aliases/get_aliases controllers.AliasesControl POST /aliases/update_aliases controllers.AliasesController.updateAliases # Rest module POST /rest/history controllers.RestController.history POST /rest/request controllers.RestController.request POST /rest controllers.RestController.index Loading
public/js/app.js +22 −0 Original line number Diff line number Diff line Loading @@ -1151,6 +1151,24 @@ angular.module('cerebro').controller('RestController', ['$scope', '$http', ); }; $scope.loadRequest = function(request) { $scope.method = request.method; $scope.path = request.path; $scope.editor.setValue(request.body); $scope.editor.format(); }; $scope.loadHistory = function() { RestDataService.history( function(history) { $scope.history = history; }, function(error) { AlertService.error('Error while loading request history', error); } ); }; $scope.updateOptions = function(text) { if ($scope.mappings) { var autocomplete = new URLAutocomplete($scope.mappings); Loading Loading @@ -1191,6 +1209,10 @@ angular.module('cerebro').factory('RestDataService', ['DataService', DataService.send('/rest', {}, success, error); }; this.history = function(success, error) { DataService.send('/rest/history', {}, success, error); }; this.execute = function(method, path, data, success, error) { var requestData = {method: method, data: data, path: path}; DataService.send('/rest/request', requestData, success, error); Loading
public/rest.html +20 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,26 @@ </select> </div> </div> <div class="row"> <div class="col-xs-12"> <a data-toggle="collapse" data-parent="#restAccordion" target="_self" href="#restHistory" ng-click="loadHistory()"> <i class="fa fa-history"></i> previous requests </a> </div> <div class="col-xs-12 panel-collapse collapse" id="restHistory" ng-show="history.length"> <a data-toggle="collapse" data-parent="#restAccordion" target="_self" href="#restHistory"> <span> <table class="table table-condensed"> <tr ng-repeat="h in history" class="normal-action" ng-click="loadRequest(h)"> <td style="width: 130px">{{h.created_at}}</td> <td style="width: 1%">{{h.method}}</td> <td>{{h.path}}</td> </tr> </table> </span> </a> </div> </div> <div class="form-group row"> <div class="col-lg-12"> <div id="rest-client-editor" class="ace-cerebro" style="height: 600px;"></div> Loading
src/app/components/rest/controller.js +18 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,24 @@ angular.module('cerebro').controller('RestController', ['$scope', '$http', ); }; $scope.loadRequest = function(request) { $scope.method = request.method; $scope.path = request.path; $scope.editor.setValue(request.body); $scope.editor.format(); }; $scope.loadHistory = function() { RestDataService.history( function(history) { $scope.history = history; }, function(error) { AlertService.error('Error while loading request history', error); } ); }; $scope.updateOptions = function(text) { if ($scope.mappings) { var autocomplete = new URLAutocomplete($scope.mappings); Loading