Browse Source

新增: 用户项目列表以及helper方法

pull/313/head
yystopf 4 years ago
parent
commit
5d0849a148
7 changed files with 65 additions and 12 deletions
  1. +7
    -0
      app/controllers/api/v1/base_controller.rb
  2. +7
    -0
      app/controllers/api/v1/users/projects_controller.rb
  3. +6
    -0
      app/controllers/api/v1/users_controller.rb
  4. +19
    -0
      app/controllers/concerns/api/user_helper.rb
  5. +1
    -1
      app/views/api/v1/projects/_simple_detail.json.jbuilder
  6. +5
    -0
      app/views/api/v1/users/projects/index.json.jbuilder
  7. +20
    -11
      config/routes/api.rb

+ 7
- 0
app/controllers/api/v1/base_controller.rb View File

@@ -1,6 +1,13 @@
class Api::V1::BaseController < ApplicationController

include Api::ProjectHelper
include Api::UserHelper

before_action :doorkeeper_authorize!
skip_before_action :user_setup

protected
def current_user
User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token
end
end

+ 7
- 0
app/controllers/api/v1/users/projects_controller.rb View File

@@ -0,0 +1,7 @@
class Api::V1::Users::ProjectsController < Api::V1::BaseController
before_action :load_observe_user

def index
@projects = kaminari_paginate(@observe_user.projects)
end
end

+ 6
- 0
app/controllers/api/v1/users_controller.rb View File

@@ -0,0 +1,6 @@
class Api::V1::UsersController < Api::V1::BaseController

def index
render_ok
end
end

+ 19
- 0
app/controllers/concerns/api/user_helper.rb View File

@@ -0,0 +1,19 @@
module Api::UserHelper
extend ActiveSupport::Concern

def load_observe_user
username = params[:owner]

@observe_user = User.find_by(login: username)

if @observe_user
logger.info "###########observe_user not founded"
@observe_user
else
logger.info "###########observe_user not found"
@observe_user = nil
render_not_found and return
end
@observe_user
end
end

+ 1
- 1
app/views/api/v1/projects/_simple_detail.json.jbuilder View File

@@ -1,5 +1,5 @@
if project.present?
json.type @project.project_type
json.type project.project_type
json.(project,
:description, :forked_count, :forked_from_project_id, :identifier,
:issues_count, :pull_requests_count, :invite_code, :website, :platform,


+ 5
- 0
app/views/api/v1/users/projects/index.json.jbuilder View File

@@ -0,0 +1,5 @@
json.total_count @projects.total_count

json.projects @projects do |project|
json.partial! "api/v1/projects/simple_detail", project: project
end

+ 20
- 11
config/routes/api.rb View File

@@ -1,20 +1,29 @@
defaults format: :json do
namespace :api do
namespace :v1 do
resources :projects, only: [:index]
# 项目相关的api
scope ':owner/:repo' do
# projects
resource :projects, path: '/', only: [:show, :update, :edit, :destroy]
scope ':owner' do
resource :users, path: '/', only: [:show, :update, :edit, :destroy]
scope module: :users do
resources :projects, only: [:index]
end

# projects文件夹下的
scope module: :projects do
resources :issues
resources :pull_requests
resources :versions
resources :release_versions
scope ':repo' do
# projects
resource :projects, path: '/', only: [:show, :update, :edit, :destroy]

# projects文件夹下的
scope module: :projects do
resources :issues
resources :pull_requests
resources :versions
resources :release_versions
end
end

end

resources :projects, only: [:index]

end
end

Loading…
Cancel
Save