From 9de2837a638a20d199ac475e9ef24165d5764f28 Mon Sep 17 00:00:00 2001
From: theworldbright <sushionigiris@gmail.com>
Date: Tue, 7 Jul 2015 15:22:35 +0900
Subject: [PATCH] Move new API from /api/v2 to /api/v0

---
 app/controllers/api/{v2 => v0}/base_controller.rb      |  2 +-
 app/controllers/api/{v2 => v0}/users_controller.rb     |  2 +-
 app/presenters/api/v0/base_presenter.rb                |  2 ++
 app/presenters/api/v2/base_presenter.rb                |  2 --
 config/routes.rb                                       | 10 +---------
 features/step_definitions/openid_steps.rb              |  4 ++--
 public/docs/{v2 => v0}/index.html                      |  4 ++--
 public/docs/{v2 => v0}/style.css                       |  0
 spec/controllers/api/v0/base_controller_spec.rb        |  5 +++++
 .../api/{v2 => v0}/users_controller_spec.rb            |  4 ++--
 spec/controllers/api/v2/base_controller_spec.rb        |  5 -----
 spec/presenters/api/v0/base_presenter_spec.rb          |  5 +++++
 spec/presenters/api/v2/base_presenter_spec.rb          |  5 -----
 spec/requests/api/v2/base_controller_spec.rb           |  2 +-
 14 files changed, 22 insertions(+), 30 deletions(-)
 rename app/controllers/api/{v2 => v0}/base_controller.rb (60%)
 rename app/controllers/api/{v2 => v0}/users_controller.rb (66%)
 create mode 100644 app/presenters/api/v0/base_presenter.rb
 delete mode 100644 app/presenters/api/v2/base_presenter.rb
 rename public/docs/{v2 => v0}/index.html (79%)
 rename public/docs/{v2 => v0}/style.css (100%)
 create mode 100644 spec/controllers/api/v0/base_controller_spec.rb
 rename spec/controllers/api/{v2 => v0}/users_controller_spec.rb (86%)
 delete mode 100644 spec/controllers/api/v2/base_controller_spec.rb
 create mode 100644 spec/presenters/api/v0/base_presenter_spec.rb
 delete mode 100644 spec/presenters/api/v2/base_presenter_spec.rb

diff --git a/app/controllers/api/v2/base_controller.rb b/app/controllers/api/v0/base_controller.rb
similarity index 60%
rename from app/controllers/api/v2/base_controller.rb
rename to app/controllers/api/v0/base_controller.rb
index a9d85bcc42..0899a13a80 100644
--- a/app/controllers/api/v2/base_controller.rb
+++ b/app/controllers/api/v0/base_controller.rb
@@ -1,4 +1,4 @@
-class Api::V2::BaseController < ApplicationController
+class Api::V0::BaseController < ApplicationController
   include OpenidConnect::Authentication
 
   before_filter :require_access_token
diff --git a/app/controllers/api/v2/users_controller.rb b/app/controllers/api/v0/users_controller.rb
similarity index 66%
rename from app/controllers/api/v2/users_controller.rb
rename to app/controllers/api/v0/users_controller.rb
index 7f8ea55b7f..e57c7cd23c 100644
--- a/app/controllers/api/v2/users_controller.rb
+++ b/app/controllers/api/v0/users_controller.rb
@@ -1,4 +1,4 @@
-class Api::V2::UsersController < Api::V2::BaseController
+class Api::V0::UsersController < Api::V0::BaseController
 
   def show
     render json: user
diff --git a/app/presenters/api/v0/base_presenter.rb b/app/presenters/api/v0/base_presenter.rb
new file mode 100644
index 0000000000..b425b1440e
--- /dev/null
+++ b/app/presenters/api/v0/base_presenter.rb
@@ -0,0 +1,2 @@
+class Api::V0::BasePresenter
+end
diff --git a/app/presenters/api/v2/base_presenter.rb b/app/presenters/api/v2/base_presenter.rb
deleted file mode 100644
index 2afabc56a5..0000000000
--- a/app/presenters/api/v2/base_presenter.rb
+++ /dev/null
@@ -1,2 +0,0 @@
-class Api::V2::BasePresenter
-end
diff --git a/config/routes.rb b/config/routes.rb
index 02d62211fc..58c7d74455 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -198,15 +198,7 @@ Diaspora::Application.routes.draw do
     end
   end
 
-  scope 'api/v0', :controller => :apis do
-    get :me
-  end
-
   namespace :api do
-    namespace :v0 do
-      get "/users/:username" => 'users#show', :as => 'user'
-      get "/tags/:name" => 'tags#show', :as => 'tag'
-    end
     namespace :v1 do
       resources :tokens, :only => [:create, :destroy]
     end
@@ -249,7 +241,7 @@ Diaspora::Application.routes.draw do
     post 'access_tokens', to: proc { |env| OpenidConnect::TokenEndpoint.new.call(env) }
   end
 
-  api_version(:module => "Api::V2", path: {value: "api/v2"}, default: true) do
+  api_version(module: "Api::V0", path: {value: "api/v0"}, default: true) do
     match 'user', to: 'users#show', via: :get
   end
 end
diff --git a/features/step_definitions/openid_steps.rb b/features/step_definitions/openid_steps.rb
index ef1974da89..47fada7887 100644
--- a/features/step_definitions/openid_steps.rb
+++ b/features/step_definitions/openid_steps.rb
@@ -10,13 +10,13 @@ end
 
 When /^I use received valid bearer tokens to access user info via URI query parameter$/ do
   accessTokenJson = JSON.parse(last_response.body)
-  userInfoEndPointURL = "/api/v2/user/"
+  userInfoEndPointURL = "/api/v0/user/"
   userInfoEndPointURLQuery = "?access_token=" + accessTokenJson["access_token"]
   visit userInfoEndPointURL + userInfoEndPointURLQuery
 end
 
 When /^I use invalid bearer tokens to access user info via URI query parameter$/ do
-  userInfoEndPointURL = "/api/v2/user/"
+  userInfoEndPointURL = "/api/v0/user/"
   userInfoEndPointURLQuery = "?access_token=" + SecureRandom.hex(32)
   visit userInfoEndPointURL + userInfoEndPointURLQuery
 end
diff --git a/public/docs/v2/index.html b/public/docs/v0/index.html
similarity index 79%
rename from public/docs/v2/index.html
rename to public/docs/v0/index.html
index 518259ab31..08b6b913fe 100644
--- a/public/docs/v2/index.html
+++ b/public/docs/v0/index.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <html lang="en-US">
   <head>
-    <title>Documentation for v2</title>
+    <title>Documentation for v0</title>
     <link href="v2/style.css" media="screen" rel="stylesheet" type="text/css">
   </head>
   <body>
@@ -10,7 +10,7 @@
         <h3>API Operations</h3>
       </div>
       <div id="content">
-        <h1>Documentation for v2</h1>
+        <h1>Documentation for v0</h1>
       </div>
     </div>
   </body>
diff --git a/public/docs/v2/style.css b/public/docs/v0/style.css
similarity index 100%
rename from public/docs/v2/style.css
rename to public/docs/v0/style.css
diff --git a/spec/controllers/api/v0/base_controller_spec.rb b/spec/controllers/api/v0/base_controller_spec.rb
new file mode 100644
index 0000000000..f637d15b8d
--- /dev/null
+++ b/spec/controllers/api/v0/base_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'spec_helper'
+
+describe Api::V0::BaseController do
+
+end
diff --git a/spec/controllers/api/v2/users_controller_spec.rb b/spec/controllers/api/v0/users_controller_spec.rb
similarity index 86%
rename from spec/controllers/api/v2/users_controller_spec.rb
rename to spec/controllers/api/v0/users_controller_spec.rb
index fd22309628..83d7128d2e 100644
--- a/spec/controllers/api/v2/users_controller_spec.rb
+++ b/spec/controllers/api/v0/users_controller_spec.rb
@@ -2,14 +2,14 @@ require 'spec_helper'
 
 # TODO: Confirm that the cache-control header in the response is private as according to RFC 6750
 # TODO: Check for WWW-Authenticate response header field as according to RFC 6750
-describe Api::V2::UsersController, type: :request do
+describe Api::V0::UsersController, type: :request do
   describe "#show" do
     let!(:application) { bob.o_auth_applications.create!(client_id: 1, client_secret: "secret") }
     let!(:token) { application.tokens.create!.bearer_token.to_s }
 
     context "when valid" do
       it "shows the user's info" do
-        get "/api/v2/user/?access_token=" + token
+        get "/api/v0/user/?access_token=" + token
         jsonBody = JSON.parse(response.body)
         expect(jsonBody["username"]).to eq(bob.username)
         expect(jsonBody["email"]).to eq(bob.email)
diff --git a/spec/controllers/api/v2/base_controller_spec.rb b/spec/controllers/api/v2/base_controller_spec.rb
deleted file mode 100644
index 221629acb8..0000000000
--- a/spec/controllers/api/v2/base_controller_spec.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'spec_helper'
-
-describe Api::V2::BaseController do
-
-end
diff --git a/spec/presenters/api/v0/base_presenter_spec.rb b/spec/presenters/api/v0/base_presenter_spec.rb
new file mode 100644
index 0000000000..36d38fbe75
--- /dev/null
+++ b/spec/presenters/api/v0/base_presenter_spec.rb
@@ -0,0 +1,5 @@
+require 'spec_helper'
+
+describe Api::V0::BasePresenter do
+
+end
diff --git a/spec/presenters/api/v2/base_presenter_spec.rb b/spec/presenters/api/v2/base_presenter_spec.rb
deleted file mode 100644
index f9ab6b5dfc..0000000000
--- a/spec/presenters/api/v2/base_presenter_spec.rb
+++ /dev/null
@@ -1,5 +0,0 @@
-require 'spec_helper'
-
-describe Api::V2::BasePresenter do
-
-end
diff --git a/spec/requests/api/v2/base_controller_spec.rb b/spec/requests/api/v2/base_controller_spec.rb
index 221629acb8..f637d15b8d 100644
--- a/spec/requests/api/v2/base_controller_spec.rb
+++ b/spec/requests/api/v2/base_controller_spec.rb
@@ -1,5 +1,5 @@
 require 'spec_helper'
 
-describe Api::V2::BaseController do
+describe Api::V0::BaseController do
 
 end
-- 
GitLab