blob: 430d8f5a4d2b827878b536a4e122e5fd723773c9 [file] [log] [blame]
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -08001// Copyright (C) 2012 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package com.google.gerrit.server.project;
16
Edwin Kempina686de92013-05-09 15:12:34 +020017import static com.google.gerrit.server.project.BranchResource.BRANCH_KIND;
Edwin Kempin4425c742013-03-18 13:23:00 +010018import static com.google.gerrit.server.project.ChildProjectResource.CHILD_PROJECT_KIND;
Edwin Kempin1b993602014-07-08 16:18:45 +020019import static com.google.gerrit.server.project.CommitResource.COMMIT_KIND;
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080020import static com.google.gerrit.server.project.DashboardResource.DASHBOARD_KIND;
Edwin Kempind31e5582013-11-30 12:07:08 +010021import static com.google.gerrit.server.project.FileResource.FILE_KIND;
Edwin Kempin1b993602014-07-08 16:18:45 +020022import static com.google.gerrit.server.project.ProjectResource.PROJECT_KIND;
David Pursehouse8cc68902014-10-06 18:17:16 +090023import static com.google.gerrit.server.project.TagResource.TAG_KIND;
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080024
25import com.google.gerrit.extensions.registration.DynamicMap;
26import com.google.gerrit.extensions.restapi.RestApiModule;
Bruce Zu798ea122013-02-18 16:55:43 +080027import com.google.inject.assistedinject.FactoryModuleBuilder;
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080028
29public class Module extends RestApiModule {
30 @Override
31 protected void configure() {
Shawn O. Pearce43265b52012-11-19 17:52:02 -080032 bind(ProjectsCollection.class);
33 bind(DashboardsCollection.class);
34
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080035 DynamicMap.mapOf(binder(), PROJECT_KIND);
Edwin Kempin4425c742013-03-18 13:23:00 +010036 DynamicMap.mapOf(binder(), CHILD_PROJECT_KIND);
Edwin Kempina686de92013-05-09 15:12:34 +020037 DynamicMap.mapOf(binder(), BRANCH_KIND);
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080038 DynamicMap.mapOf(binder(), DASHBOARD_KIND);
Edwin Kempind31e5582013-11-30 12:07:08 +010039 DynamicMap.mapOf(binder(), FILE_KIND);
Edwin Kempin1b993602014-07-08 16:18:45 +020040 DynamicMap.mapOf(binder(), COMMIT_KIND);
David Pursehouse8cc68902014-10-06 18:17:16 +090041 DynamicMap.mapOf(binder(), TAG_KIND);
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080042
Bruce Zu798ea122013-02-18 16:55:43 +080043 put(PROJECT_KIND).to(PutProject.class);
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080044 get(PROJECT_KIND).to(GetProject.class);
45 get(PROJECT_KIND, "description").to(GetDescription.class);
Shawn Pearcef3acb072013-01-29 09:25:54 -080046 put(PROJECT_KIND, "description").to(PutDescription.class);
47 delete(PROJECT_KIND, "description").to(PutDescription.class);
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080048
49 get(PROJECT_KIND, "parent").to(GetParent.class);
50 put(PROJECT_KIND, "parent").to(SetParent.class);
51
Edwin Kempin4425c742013-03-18 13:23:00 +010052 child(PROJECT_KIND, "children").to(ChildProjectsCollection.class);
Edwin Kempin5b6c4062013-03-19 09:26:03 +010053 get(CHILD_PROJECT_KIND).to(GetChildProject.class);
Edwin Kempin4425c742013-03-18 13:23:00 +010054
Edwin Kempin6b813372013-03-13 17:07:33 +010055 get(PROJECT_KIND, "HEAD").to(GetHead.class);
56 put(PROJECT_KIND, "HEAD").to(SetHead.class);
57
Edwin Kempin62946742014-07-09 11:17:58 +020058 put(PROJECT_KIND, "ban").to(BanCommit.class);
59
Edwin Kempin19ea9b92013-03-20 13:20:26 +010060 get(PROJECT_KIND, "statistics.git").to(GetStatistics.class);
Edwin Kempinef3542f2013-03-19 13:31:49 +010061 post(PROJECT_KIND, "gc").to(GarbageCollect.class);
Edwin Kempin19ea9b92013-03-20 13:20:26 +010062
Edwin Kempina686de92013-05-09 15:12:34 +020063 child(PROJECT_KIND, "branches").to(BranchesCollection.class);
Edwin Kempin5c0d6b32013-05-09 19:54:37 +020064 put(BRANCH_KIND).to(PutBranch.class);
Edwin Kempin196e1732013-05-09 15:12:34 +020065 get(BRANCH_KIND).to(GetBranch.class);
Edwin Kempin6ce96a12013-06-06 13:20:01 +020066 delete(BRANCH_KIND).to(DeleteBranch.class);
Hugo Arèsef8e3202015-01-12 15:09:06 -050067 post(PROJECT_KIND, "branches:delete").to(DeleteBranches.class);
Edwin Kempin5c0d6b32013-05-09 19:54:37 +020068 install(new FactoryModuleBuilder().build(CreateBranch.Factory.class));
Edwin Kempin87504d92014-07-04 12:59:19 +020069 get(BRANCH_KIND, "reflog").to(GetReflog.class);
Edwin Kempind31e5582013-11-30 12:07:08 +010070 child(BRANCH_KIND, "files").to(FilesCollection.class);
71 get(FILE_KIND, "content").to(GetContent.class);
Edwin Kempina686de92013-05-09 15:12:34 +020072
Edwin Kempin1b993602014-07-08 16:18:45 +020073 child(PROJECT_KIND, "commits").to(CommitsCollection.class);
74 get(COMMIT_KIND).to(GetCommit.class);
Edwin Kempin6f7410a2014-07-09 15:46:22 +020075 child(COMMIT_KIND, "files").to(FilesInCommitCollection.class);
Edwin Kempin1b993602014-07-08 16:18:45 +020076
David Pursehouse8cc68902014-10-06 18:17:16 +090077 child(PROJECT_KIND, "tags").to(TagsCollection.class);
78 get(TAG_KIND).to(GetTag.class);
79
Shawn O. Pearce43265b52012-11-19 17:52:02 -080080 child(PROJECT_KIND, "dashboards").to(DashboardsCollection.class);
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080081 get(DASHBOARD_KIND).to(GetDashboard.class);
Shawn O. Pearcea7d9c9b2012-11-16 15:00:21 -080082 put(DASHBOARD_KIND).to(SetDashboard.class);
83 delete(DASHBOARD_KIND).to(DeleteDashboard.class);
Bruce Zu798ea122013-02-18 16:55:43 +080084 install(new FactoryModuleBuilder().build(CreateProject.Factory.class));
Dave Borowitz237073a2013-04-04 16:52:27 -070085
86 get(PROJECT_KIND, "config").to(GetConfig.class);
Edwin Kempina23eb102013-07-17 09:10:54 +020087 put(PROJECT_KIND, "config").to(PutConfig.class);
Shawn O. Pearceea6d0b52012-11-16 10:57:31 -080088 }
89}