# Routes
# This file defines all application routes (Higher priority routes first)
# https://www.playframework.com/documentation/latest/ScalaRouting
# ~~~~

# An example controller showing a sample home page
GET     /                                org.clulab.alignment.webapp.controllers.v1.HomeController.index
GET     /v1                              org.clulab.alignment.webapp.controllers.v1.HomeController.index
GET     /v1/ping                         org.clulab.alignment.webapp.controllers.v1.HomeController.ping
GET     /v1/echo                         org.clulab.alignment.webapp.controllers.v1.HomeController.echo(text: String)
GET     /v1/status                       org.clulab.alignment.webapp.controllers.v1.HomeController.status
GET     /v2/status                       org.clulab.alignment.webapp.controllers.v1.HomeController.status2(ontologyId: Option[String])
GET     /v1/search                       org.clulab.alignment.webapp.controllers.v1.HomeController.search(query: String, maxHits: Int ?= 10, threshold: Option[Float])
PUT     /v1/compositionalSearch          org.clulab.alignment.webapp.controllers.v1.HomeController.compositionalSearch(maxHits: Int ?= 10, threshold: Option[Float])
PUT     /v2/compositionalSearch          org.clulab.alignment.webapp.controllers.v1.HomeController.compositionalSearch2(maxHits: Int ?= 10, threshold: Option[Float], ontologyId: Option[String], geography: List[String], period_gte: Option[Long], period_lte: Option[Long])

PUT     /v2/bulkCompositionalSearch      org.clulab.alignment.webapp.controllers.v1.HomeController.bulkCompositionalSearch2(secret: String, maxHits: Option[Int], threshold: Option[Float], ontologyId: Option[String], geography: List[String], period_gte: Option[Long], period_lte: Option[Long])
GET     /v1/bulkSearchOntologyToDatamart org.clulab.alignment.webapp.controllers.v1.HomeController.bulkSearchOntologyToDatamart(secret: String, maxHits: Option[Int], threshold: Option[Float])
GET     /v1/bulkSearchDatamartToOntology org.clulab.alignment.webapp.controllers.v1.HomeController.bulkSearchDatamartToOntology(secret: String, maxHits: Option[Int], threshold: Option[Float], compositional: Boolean ?= false)

PUT     /v1/groundIndicator              org.clulab.alignment.webapp.controllers.v1.HomeController.groundIndicator(maxHits: Int ?= 10, threshold: Option[Float], compositional: Boolean ?= true)
PUT     /v1/groundModel                  org.clulab.alignment.webapp.controllers.v1.HomeController.groundModel(maxHits: Int ?= 10, threshold: Option[Float], compositional: Boolean ?= true)

PUT     /v2/addOntology                  org.clulab.alignment.webapp.controllers.v1.HomeController.addOntology2(secret: String, ontologyId: String)
PUT     /v1/reindex                      org.clulab.alignment.webapp.controllers.v1.HomeController.reindex(secret: String)

# API spec
GET     /api                        org.clulab.swagger.controllers.OpenApiController.openAPI

# Map static resources from the /public folder to the /assets URL path
GET     /favicon.ico                controllers.Assets.at(file="images/favicon.ico")
GET     /assets/*file               controllers.Assets.at(file)