###
# Coselmar version : ${project.version}
###

[config]
package.filters=fr.ifremer.coselmar.services.filter
package.actions=fr.ifremer.coselmar.services.v1
package.errors=fr.ifremer.coselmar.services.v1
server.listener.class=fr.ifremer.coselmar.services.CoselmarRestApplicationListener
default.render=fr.ifremer.coselmar.services.CoselmarRender

[filters]
*      /*                                   CoselmarRestRequestFilter.inject

[errors]

fr.ifremer.coselmar.services.errors.InvalidCredentialException                  ErrorAction.on401
fr.ifremer.coselmar.services.errors.UnauthorizedException                       ErrorAction.on403
fr.ifremer.coselmar.services.errors.NoResultException                           ErrorAction.on404
fr.ifremer.coselmar.services.errors.MailAlreadyExistingException                ErrorAction.on409
fr.ifremer.coselmar.exceptions.CoselmarTechnicalException                       ErrorAction.on500
org.nuiton.topia.persistence.TopiaNoResultException                             ErrorAction.on404

[actions]

GET     /                                       redirect:index.html

# DocApi

GET    /v1/doc                                  DocApi.showMapping

# Documents Api

GET    /v1/documents                            DocumentsWebService.getDocuments
GET    /v1/documents/keywords                   DocumentsWebService.getKeywords
GET    /v1/documents/types                      DocumentsWebService.getTypes
GET    /v1/documents/{documentId}               DocumentsWebService.getDocument
GET    /v1/documents/{documentId}/file          DocumentsWebService.getDocumentFile
POST   /v1/documents                            DocumentsWebService.addDocument
POST   /v1/documents/{documentId}               DocumentsWebService.saveDocument
POST   /v1/documents/{documentId}/file          DocumentsWebService.addDocumentFile
DELETE /v1/documents/{documentId}               DocumentsWebService.deleteDocument

# Users Api

GET    /v1/users                                UsersWebService.getUsers
GET    /v1/users/experts                        UsersWebService.getExperts
GET    /v1/users/{userId}                       UsersWebService.getUser
POST   /v1/users/login                          UsersWebService.login
POST   /v1/users/password                       UsersWebService.generateNewPassword
POST   /v1/users/{userId}                       UsersWebService.modifyUser
POST   /v1/users                                UsersWebService.addUser
DELETE /v1/users/{userId}                       UsersWebService.deleteUser

# Questions Api

GET    /v1/questions                            QuestionsWebService.getQuestions
GET    /v1/questions/themes                     QuestionsWebService.getThemes
GET    /v1/questions/types                      QuestionsWebService.getTypes
GET    /v1/questions/{questionId}               QuestionsWebService.getQuestion
POST   /v1/questions/{questionId}               QuestionsWebService.saveQuestion
POST   /v1/questions/{questionId}/documents     QuestionsWebService.addDocuments
POST   /v1/questions                            QuestionsWebService.addQuestion
DELETE /v1/questions/{questionId}               QuestionsWebService.deleteQuestion

# Admin API
POST   /v1/admin/lucene/index                   AdminWebService.refreshLuceneIndex