# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~

# Home page
GET           /                                               com.atlassian.addon.connect.hercules.controllers.Application.index()
GET           /atlassian-connect.json                         com.atlassian.addon.connect.hercules.controllers.Application.descriptor()

->            /                                               ac.Routes


GET           /hercules/scan                                  @com.atlassian.addon.connect.hercules.controllers.Hercules.requestScan(issue_id: Long)
GET           /hercules/scan/condition                        @com.atlassian.addon.connect.hercules.controllers.Hercules.isAllowedToScan(project_id: Long, issue_id: Long)
POST          /hercules/scan                                  @com.atlassian.addon.connect.hercules.controllers.Hercules.handleIssueUpdate()
POST          /hercules/scan/:issue_id                         @com.atlassian.addon.connect.hercules.controllers.Hercules.scanIssue(issue_id: Long)
GET           /hercules/results/condition                     @com.atlassian.addon.connect.hercules.controllers.Hercules.hasResults(project_id: Long, issue_id: Long)
GET           /hercules/results/:issueId                      @com.atlassian.addon.connect.hercules.controllers.Hercules.showResults(issueId: Long)
GET           /hercules/results/:issueId/tab                  @com.atlassian.addon.connect.hercules.controllers.Hercules.showTabResults(issueId: Long)
PUT           /hercules/results/:issueId/vote/:matchId        @com.atlassian.addon.connect.hercules.controllers.Hercules.upVote(issueId: Long, matchId: Long)
DELETE        /hercules/results/:issueId/vote/:matchId        @com.atlassian.addon.connect.hercules.controllers.Hercules.downVote(issueId: Long, matchId: Long)

GET           /admin                                          @com.atlassian.addon.connect.hercules.controllers.Admin.admin()
GET           /admin/configuration                            @com.atlassian.addon.connect.hercules.controllers.Admin.adminConfiguration()
GET           /admin/configuration/add                        @com.atlassian.addon.connect.hercules.controllers.Admin.adminConfigurationAdd()
POST          /admin/configuration/add                        @com.atlassian.addon.connect.hercules.controllers.Admin.submitConfiguration()
GET           /admin/configuration/edit/:configId             @com.atlassian.addon.connect.hercules.controllers.Admin.adminConfigurationEdit(configId:Long)
POST          /admin/configuration/edit/:configId             @com.atlassian.addon.connect.hercules.controllers.Admin.editConfiguration(configId:Long)
DELETE        /admin/configuration/remove/:configId           @com.atlassian.addon.connect.hercules.controllers.Admin.adminConfigurationRemove(configId:Long)
GET           /admin/properties                               @com.atlassian.addon.connect.hercules.controllers.Properties.adminProperties()
POST          /admin/properties                               @com.atlassian.addon.connect.hercules.controllers.Properties.submitProperties()


GET           /admin/pattern                                  @com.atlassian.addon.connect.hercules.controllers.Pattern.adminPatterns()
GET           /admin/pattern/:patternSourceId/report          @com.atlassian.addon.connect.hercules.controllers.Pattern.adminVoteReport(patternSourceId:Long)
GET           /admin/pattern/add                              @com.atlassian.addon.connect.hercules.controllers.Pattern.adminAddPattern()
POST          /admin/pattern/add                              @com.atlassian.addon.connect.hercules.controllers.Pattern.submitAddPattern()

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

# These will only work when running in TEST mode.
GET           /test/cleaninstance                             com.atlassian.addon.connect.hercules.controllers.TestHelper.cleanInstance()
GET           /@admin                                         com.atlassian.addon.connect.hercules.controllers.TestHelper.adminUI()