@@ -74,9 +74,9 @@ class DelphiRoutes(requestLimiter: RequestLimitScheduler) extends JsonSupport wi
7474 get {
7575 parameter(Symbol (" pretty" ).? ) { (pretty) =>
7676 complete(
77- // TODO: Introduce failure concept for feature extractor
78- prettyPrint(pretty, featureExtractor.featureList.toJson)
79- )
77+ HttpResponse ( StatusCodes . OK ,
78+ List (headers.`Content-Type`( ContentTypes .`application/json`)),
79+ prettyPrint(pretty, featureExtractor.featureList.toJson)) )
8080 }
8181 }
8282 }
@@ -89,7 +89,9 @@ class DelphiRoutes(requestLimiter: RequestLimitScheduler) extends JsonSupport wi
8989 val result = new StatisticsQuery (configuration).retrieveStandardStatistics
9090 result match {
9191 case Some (stats) => {
92- prettyPrint(pretty, stats.toJson)
92+ HttpResponse (StatusCodes .OK ,
93+ List (headers.`Content-Type`(ContentTypes .`application/json`)),
94+ prettyPrint(pretty, stats.toJson))
9395 }
9496 case _ => HttpResponse (StatusCodes .InternalServerError )
9597 }
@@ -103,7 +105,9 @@ class DelphiRoutes(requestLimiter: RequestLimitScheduler) extends JsonSupport wi
103105 parameter(Symbol (" pretty" ).? ) { (pretty) =>
104106 complete(
105107 RetrieveQuery .retrieve(identifier) match {
106- case Some (result) => prettyPrint(pretty, result.toJson)
108+ case Some (result) => HttpResponse (StatusCodes .OK ,
109+ List (headers.`Content-Type`(ContentTypes .`application/json`)),
110+ prettyPrint(pretty, result.toJson))
107111 case None => HttpResponse (StatusCodes .NotFound )
108112 }
109113 )
@@ -118,14 +122,17 @@ class DelphiRoutes(requestLimiter: RequestLimitScheduler) extends JsonSupport wi
118122 log.info(s " Received search query: ${input.query}" )
119123 complete(
120124 new SearchQuery (configuration, featureExtractor).search(input) match {
121- case Success (result) => prettyPrint(pretty, result.toJson)
125+ case Success (result) =>
126+ HttpResponse (StatusCodes .OK ,
127+ List (headers.`Content-Type`(ContentTypes .`application/json`)),
128+ prettyPrint(pretty, result.toJson))
122129 case Failure (e) => {
123130 e match {
124131 case se : SearchError => {
125- se.toJson
132+ HttpResponse ( StatusCodes . ServerError ( StatusCodes . InternalServerError .intValue)( se.toJson.toString(), " " ))
126133 }
127134 case _ => {
128- new SearchError ( " Search query failed" ).toJson
135+ HttpResponse ( StatusCodes . ServerError ( StatusCodes . InternalServerError .intValue)( " Search query failed" , " " ))
129136 }
130137 }
131138 }
0 commit comments