MiniDigger/Hangar

View on GitHub
ore/conf/routes

Summary

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

GET     /*path/                                                     @controllers.Application.removeTrail(path)
GET     /assets/*file                                               controllers.Assets.versioned(path="/public", file: Asset)

# ---------- Admin ----------

GET     /admin/user/:user                                           @controllers.Application.userAdmin(user)
POST    /admin/user/:user/update                                    @controllers.Application.updateUser(user)
GET     /admin/approval/versions                                    @controllers.Application.showQueue()
GET     /admin/approval/projects                                    @controllers.Application.showProjectVisibility()
GET     /admin/flags                                                @controllers.Application.showFlags()
GET     /admin/flags/:id/resolve/:resolved                          @controllers.Application.setFlagResolved(id: DbRef[Flag], resolved: Boolean)
GET     /admin/health                                               @controllers.Application.showHealth()
GET     /admin/activities/:user                                     @controllers.Application.showActivities(user: String)
GET     /admin/stats                                                @controllers.Application.showStats(from: Option[String], to: Option[String])
GET     /admin/log                                                  @controllers.Application.showLog(page: Option[Int], userFilter: Option[DbRef[User]], projectFilter: Option[DbRef[Project]], versionFilter: Option[DbRef[Version]], pageFilter: Option[DbRef[Page]], actionFilter: Option[Int], subjectFilter: Option[DbRef[_]])

GET     /statusz                                                    @controllers.ApiV1Controller.showStatusZ()

# ---------- API (v1) ----------
+nocsrf
POST    /api/sync_sso                                               @controllers.ApiV1Controller.syncSso()

GET     /api/projects                                               @controllers.ApiV1Controller.listProjects(categories: Option[String], sort: Option[Int], q: Option[String], limit: Option[Long], offset: Option[Long])
GET     /api/projects/:pluginId                                     @controllers.ApiV1Controller.showProject(pluginId)

POST    /api/projects/:pluginId/keys/new                            @controllers.ApiV1Controller.createKey(pluginId)
POST    /api/projects/:pluginId/keys/revoke                         @controllers.ApiV1Controller.revokeKey(pluginId)

GET     /api/projects/:pluginId/versions                            @controllers.ApiV1Controller.listVersions(pluginId, channels: Option[String], limit: Option[Int], offset: Option[Int])
GET     /api/projects/:pluginId/versions/:name                      @controllers.ApiV1Controller.showVersion(pluginId, name)
POST    /api/projects/:pluginId/versions/:name                      @controllers.ApiV1Controller.deployVersion(pluginId, name)

GET     /api/projects/:pluginId/pages                               @controllers.ApiV1Controller.listPages(pluginId, parentId: Option[DbRef[Page]])

GET     /api/projects/:pluginId/versions/recommended/download       @controllers.project.Versions.downloadRecommendedJarById(pluginId, token: Option[String])
GET     /api/projects/:pluginId/versions/:name/download             @controllers.project.Versions.downloadJarById(pluginId, name, token: Option[String])

GET     /api/users                                                  @controllers.ApiV1Controller.listUsers(limit: Option[Int], offset: Option[Int])
GET     /api/users/:user                                            @controllers.ApiV1Controller.showUser(user)

GET     /api/v1/projects                                            @controllers.ApiV1Controller.listProjects(categories: Option[String], sort: Option[Int], q: Option[String], limit: Option[Long], offset: Option[Long])
GET     /api/v1/projects/:pluginId                                  @controllers.ApiV1Controller.showProject(pluginId)

GET     /api/v1/projects/:pluginId/versions                         @controllers.ApiV1Controller.listVersions(pluginId, channels: Option[String], limit: Option[Int], offset: Option[Int])
GET     /api/v1/projects/:pluginId/versionsAll                      @controllers.ApiV1Controller.listAllVersions(pluginId, channels: Option[String], limit: Option[Int], offset: Option[Int])
GET     /api/v1/projects/:pluginId/versions/:name                   @controllers.ApiV1Controller.showVersion(pluginId, name)
POST    /api/v1/projects/:pluginId/versions/:name                   @controllers.ApiV1Controller.deployVersion(pluginId, name)

GET     /api/v1/projects/:pluginId/pages                            @controllers.ApiV1Controller.listPages(pluginId, parentId: Option[DbRef[Page]])

GET     /api/v1/users                                               @controllers.ApiV1Controller.listUsers(limit: Option[Int], offset: Option[Int])
GET     /api/v1/users/:user                                         @controllers.ApiV1Controller.showUser(user)

GET     /api/v1/projects/:plugin/tags/:versionName                  @controllers.ApiV1Controller.listTags(plugin, versionName)
GET     /api/v1/tags/:tagId                                         @controllers.ApiV1Controller.tagColor(tagId)

GET     /api                                                        @controllers.Application.swagger()
->      /api/v2                                                     apiv2.Routes

# ---------- Application ----------

GET     /                                                           @controllers.Application.showHome(categories: Seq[String], q: Option[String], sort: Option[String], page: Option[Int], platformCategory: Option[String], platform: Option[String], relevance: Option[Boolean])
GET     /linkout                                                    @controllers.Application.linkOut(remoteUrl: String)
GET     /signup                                                     @controllers.Users.signUp()
GET     /login                                                      @controllers.Users.logIn(sso: Option[String], sig: Option[String], returnUrl: Option[String])
GET     /logout                                                     @controllers.Users.logOut()
POST    /verify                                                     @controllers.Users.verify(returnPath: Option[String])

# ---------- Projects ----------

GET     /new                                                        @controllers.project.Projects.showCreator()
POST    /new                                                        @controllers.project.Projects.createProject()

POST    /invite/:id/:status                                         @controllers.project.Projects.setInviteStatus(id: DbRef[ProjectUserRole], status)
POST    /invite/:id/:status/:behalf                                 @controllers.project.Projects.setInviteStatusOnBehalf(id: DbRef[ProjectUserRole], status: String, behalf: String)

POST    /pages/preview                                              @controllers.project.Pages.showPreview()

# ---------- Organizations ----------

GET     /organizations/new                                          @controllers.Organizations.showCreator()
POST    /organizations/new                                          @controllers.Organizations.create()

POST    /organizations/invite/:id/:status                           @controllers.Organizations.setInviteStatus(id: DbRef[OrganizationUserRole], status)

GET     /organizations/:organization/settings/avatar                @controllers.Organizations.updateAvatar(organization)
POST    /organizations/:organization/settings/members               @controllers.Organizations.updateMembers(organization)
POST    /organizations/:organization/settings/members/remove        @controllers.Organizations.removeMember(organization)

# ---------- Users ----------
GET     /authors                                                    @controllers.Users.showAuthors(sort: Option[String], page: Option[Int])
GET     /staff                                                      @controllers.Users.showStaff(sort: Option[String], page: Option[Int])

GET     /notifications                                              @controllers.Users.showNotifications(notificationFilter: Option[String], inviteFilter: Option[String])
POST    /notifications/read/:id                                     @controllers.Users.markNotificationRead(id: DbRef[Notification])

POST    /prompts/read/:id                                           @controllers.Users.markPromptRead(id: Int)

GET     /:user                                                      @controllers.Users.showProjects(user, page: Option[Int])
POST    /:user/settings/tagline                                     @controllers.Users.saveTagline(user)
POST    /:user/settings/lock/:locked                                @controllers.Users.setLocked(user, locked: Boolean, sso: Option[String], sig: Option[String])
GET     /:user/settings/apiKeys                                     @controllers.Users.editApiKeys(user)
# -------- End Users --------

GET     /:author/:slug                                              @controllers.project.Projects.show(author, slug)
GET     /:author/:slug/stars                                        @controllers.project.Projects.showStargazers(author, slug, page: Option[Int])
POST    /:author/:slug/stars/toggle                                 @controllers.project.Projects.toggleStarred(author, slug)
POST    /:author/:slug/flag                                         @controllers.project.Projects.flag(author, slug)
POST    /:author/:slug/visible/:visibility                          @controllers.project.Projects.setVisible(author, slug, visibility: Int)
GET     /:author/:slug/watchers                                     @controllers.project.Projects.showWatchers(author, slug, page: Option[Int])
POST    /:author/:slug/watchers/:watching                           @controllers.project.Projects.setWatching(author, slug, watching: Boolean)

GET     /:author/:slug/discuss                                      @controllers.project.Projects.showDiscussion(author, slug)
POST    /:author/:slug/discuss/reply                                @controllers.project.Projects.postDiscussionReply(author, slug)

GET     /:author/:slug/manage                                       @controllers.project.Projects.showSettings(author, slug)
GET     /:author/:slug/manage/sendforapproval                       @controllers.project.Projects.sendForApproval(author, slug)
POST    /:author/:slug/manage/save                                  @controllers.project.Projects.save(author, slug)
POST    /:author/:slug/manage/rename                                @controllers.project.Projects.rename(author, slug)
POST    /:author/:slug/manage/hardDelete                            @controllers.project.Projects.delete(author, slug)
POST    /:author/:slug/manage/delete                                @controllers.project.Projects.softDelete(author, slug)
POST    /:author/:slug/manage/members/remove                        @controllers.project.Projects.removeMember(author, slug)

GET     /:author/:slug/versionLog                                   @controllers.project.Versions.showLog(author, slug, versionString)
GET     /:author/:slug/flags                                        @controllers.project.Projects.showFlags(author, slug)
GET     /:author/:slug/notes                                        @controllers.project.Projects.showNotes(author, slug)
POST    /:author/:slug/notes/addmessage                             @controllers.project.Projects.addMessage(author, slug)

GET     /:author/:slug/icon                                         @controllers.project.Projects.showIcon(author, slug)
POST    /:author/:slug/icon                                         @controllers.project.Projects.uploadIcon(author, slug)
POST    /:author/:slug/icon/reset                                   @controllers.project.Projects.resetIcon(author, slug)
GET     /:author/:slug/icon/pending                                 @controllers.project.Projects.showPendingIcon(author, slug)
# ------- End Projects ---------


# ---------- Pages ----------

GET     /:author/:slug/pages/*page/edit                             @controllers.project.Pages.showEditor(author, slug, page)
POST    /:author/:slug/pages/*page/edit                             @controllers.project.Pages.save(author, slug, page)
POST    /:author/:slug/pages/*page/delete                           @controllers.project.Pages.delete(author, slug, page)
GET     /:author/:slug/pages/*page                                  @controllers.project.Pages.show(author, slug, page)


# ---------- Channels ----------

GET     /:author/:slug/channels                                     @controllers.project.Channels.showList(author, slug)
POST    /:author/:slug/channels                                     @controllers.project.Channels.create(author, slug)
POST    /:author/:slug/channels/:channel                            @controllers.project.Channels.save(author, slug, channel)
POST    /:author/:slug/channels/:channel/delete                     @controllers.project.Channels.delete(author, slug, channel)


# ---------- Versions ----------

GET     /:author/:slug/versions                                     @controllers.project.Versions.showList(author, slug)

POST    /:author/:slug/versions/:version/approve                    @controllers.project.Versions.approve(author, slug, version, partial: Boolean = false)
POST    /:author/:slug/versions/:version/approvePartial             @controllers.project.Versions.approve(author, slug, version, partial: Boolean = true)
POST    /:author/:slug/versions/:version/hardDelete                 @controllers.project.Versions.delete(author, slug, version)
POST    /:author/:slug/versions/:version/restore                    @controllers.project.Versions.restore(author, slug, version)
POST    /:author/:slug/versions/:version/delete                     @controllers.project.Versions.softDelete(author, slug, version)

GET     /:author/:slug/versions/:version/confirm                    @controllers.project.Versions.showDownloadConfirm(author, slug, version, downloadType: Option[Int], api: Option[Boolean], dummy: Option[String])
+nocsrf
POST    /:author/:slug/versions/:version/confirm                    @controllers.project.Versions.confirmDownload(author, slug, version, downloadType: Option[Int], token: Option[String], dummy: Option[String])

GET     /:author/:slug/versions/recommended/download                @controllers.project.Versions.downloadRecommended(author, slug, token: Option[String])
GET     /:author/:slug/versions/:version/download                   @controllers.project.Versions.download(author, slug, version, token: Option[String])

GET     /:author/:slug/versions/recommended/jar                     @controllers.project.Versions.downloadRecommendedJar(author, slug, token: Option[String])
GET     /:author/:slug/versions/:version/jar                        @controllers.project.Versions.downloadJar(author, slug, version, token: Option[String])

GET     /:author/:slug/versions/new                                 @controllers.project.Versions.showCreator(author, slug)
POST    /:author/:slug/versions/new/upload                          @controllers.project.Versions.upload(author, slug)
GET     /:author/:slug/versions/new/:version                        @controllers.project.Versions.showCreatorWithMeta(author, slug, version)

POST    /:author/:slug/versions/:version                            @controllers.project.Versions.publish(author, slug, version)
GET     /:author/:slug/versions/:version                            @controllers.project.Versions.show(author, slug, version)
POST    /:author/:slug/versions/:version/save                       @controllers.project.Versions.saveDescription(author, slug, version)
POST    /:author/:slug/versions/:version/recommended                @controllers.project.Versions.setRecommended(author, slug, version)


# ---------- Reviews ----------
GET     /:author/:slug/versions/:version/reviews                    @controllers.Reviews.showReviews(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/init               @controllers.Reviews.createReview(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/stop               @controllers.Reviews.stopReview(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/approve            @controllers.Reviews.approveReview(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/takeover           @controllers.Reviews.takeoverReview(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/addmessage         @controllers.Reviews.addMessage(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/edit/:review       @controllers.Reviews.editReview(author, slug, version, review: DbRef[Review])
POST    /:author/:slug/versions/:version/reviews/reopen             @controllers.Reviews.reopenReview(author, slug, version)
POST    /:author/:slug/versions/:version/reviews/reviewtoggle       @controllers.Reviews.backlogToggle(author, slug, version)