diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 548793f3e..64016458e 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -27,6 +27,7 @@ module Mobile mount Apis::Auth mount Apis::Users mount Apis::Courses + mount Apis::Watches add_swagger_documentation ({api_version: 'v1', base_path: '/api'}) end diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index 136e5b171..ae233a853 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -30,6 +30,7 @@ module Mobile desc "用户登出" params do + requires :token, type: String end delete do authenticate! diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index 1084e8cbc..9aeea5176 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -2,11 +2,11 @@ module Mobile module Apis class Courses < Grape::API resource :courses do - desc "get all courses" + desc "获取所有课程" params do - optional :school_id, type: Integer, desc: 'school number' - requires :per_page_count, type: Integer - requires :page, type: Integer, desc: 'current page no' + optional :school_id, type: Integer, desc: '传入学校id,返回该学校课程列表' + requires :per_page_count, type: Integer, desc: '每页总数' + requires :page, type: Integer, desc: '当前页码' end get do cs = CoursesService.new @@ -15,7 +15,7 @@ module Mobile present :status, 0 end - desc "Return a course" + desc "返回单个课程" params do requires :id, type: Integer end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index 5dc25d401..d05809726 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -2,12 +2,8 @@ module Mobile module Apis class Users < Grape::API resource :users do - desc "get all users" - get do - ['hello'] - end - desc "add a user" + desc "注册用户" params do requires :login, type: String, desc: 'username' requires :mail, type: String, desc: 'mail' @@ -27,8 +23,9 @@ module Mobile end - desc "modify user" + desc "修改用户" params do + requires :token, type: String #optional :file, type: File, desc: 'avatar' optional :occupation, type: String optional :brief_introduction, type: String diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb new file mode 100644 index 000000000..0715ff4a2 --- /dev/null +++ b/app/api/mobile/apis/watches.rb @@ -0,0 +1,53 @@ +module Mobile + module Apis + class Watches < Grape::API + resource :watches do + + desc "获取所有关注" + params do + requires :token, type: String + end + get do + authenticate! + ws = UsersService.new + ws.user_watcher(id: current_user.id) + end + + + desc "关注某人" + params do + requires :token, type: String + requires :object_id, type: Integer, desc: '关注的用户的id' + end + post do + authenticate! + ws = WatchesService.new + begin + o = ws.watch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + {status:0 , data: o} + rescue =>e + {status:1, message: e.message} + end + end + + + desc "取消关注" + params do + requires :token, type: String + requires :object_id, type: Integer, desc: '取消关注的用户的id' + end + delete do + authenticate! + ws = WatchesService.new + begin + ws.unwatch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + {status:0} + rescue =>e + {status:1, message: e.message} + end + end + + end + end + end +end \ No newline at end of file diff --git a/app/controllers/watchers_controller.rb b/app/controllers/watchers_controller.rb index 096e44f06..f6d01a03d 100644 --- a/app/controllers/watchers_controller.rb +++ b/app/controllers/watchers_controller.rb @@ -17,7 +17,7 @@ class WatchersController < ApplicationController before_filter :require_login#, :find_watchables, :only => [:watch, :unwatch] def watch - s = Service.new + s = WatchesService.new watchables = s.watch params.merge(:current_user_id => User.current.id) respond_to do |format| format.html { redirect_to_referer_or {render :text => (true ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} @@ -33,7 +33,7 @@ class WatchersController < ApplicationController end def unwatch - s = Service.new + s = WatchesService.new watchables = s.unwatch params.merge(:current_user_id => User.current.id) respond_to do |format| format.html { redirect_to_referer_or {render :text => (false ? 'Watcher added.' : 'Watcher removed.'), :layout => true}} diff --git a/app/services/service.rb b/app/services/watches_service.rb similarity index 96% rename from app/services/service.rb rename to app/services/watches_service.rb index 413d9bfb8..2b9bed3cd 100644 --- a/app/services/service.rb +++ b/app/services/watches_service.rb @@ -1,4 +1,4 @@ -class Service +class WatchesService def watch params @current_user = User.find(params[:current_user_id]) @watchables = find_watchables params