From 40d0c03751de0e8a61a89f7c0e908002e9b63df7 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 16:51:19 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/users.rb | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index d05809726..e80808c5d 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -38,7 +38,27 @@ module Mobile us = UsersService.new begin ue = us.edit_user params.merge(id: current_user.id) - {status: 0, data: ue} + present :data, user, with: Mobile::Entities::User + present :status, 0 + rescue => e + {status: 1, message: e.message} + end + end + + + desc '修改密码' + params do + requires :token, type: String + requires :password, type:String , desc: '原密码' + requires :new_password, type: String, desc: '新密码' + end + post 'password' do + authenticate! + us = UsersService.new + begin + ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) + present :data, user, with: Mobile::Entities::User + present :status, 0 rescue => e {status: 1, message: e.message} end From 236968d946fe31f27257f4b9248e3d7c56466d34 Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Wed, 10 Dec 2014 17:29:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/api.rb | 1 + app/api/mobile/apis/auth.rb | 2 +- app/api/mobile/apis/users.rb | 34 +++++++--------------- app/api/mobile/apis/watches.rb | 19 ++++-------- app/api/mobile/middleware/error_handler.rb | 18 ++++++++++++ 5 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 app/api/mobile/middleware/error_handler.rb diff --git a/app/api/mobile/api.rb b/app/api/mobile/api.rb index 64016458e..d3fe414a4 100644 --- a/app/api/mobile/api.rb +++ b/app/api/mobile/api.rb @@ -4,6 +4,7 @@ module Mobile version 'v1', using: :path format :json content_type :json, "application/json;charset=UTF-8" + use Mobile::Middleware::ErrorHandler helpers do def logger diff --git a/app/api/mobile/apis/auth.rb b/app/api/mobile/apis/auth.rb index ae233a853..05b0a793b 100644 --- a/app/api/mobile/apis/auth.rb +++ b/app/api/mobile/apis/auth.rb @@ -24,7 +24,7 @@ module Mobile present :data, {token: key.access_token, user: api_user}, using: Entities::Auth present :status, 0 else - {status: 1, message: 'Unauthorized.'} + raise 'Unauthorized.' end end diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb index e80808c5d..61859904f 100644 --- a/app/api/mobile/apis/users.rb +++ b/app/api/mobile/apis/users.rb @@ -11,15 +11,11 @@ module Mobile end post do us = UsersService.new - begin - user = us.register params.merge(:password_confirmation => params[:password], - :should_confirmation_password => true) - raise "register failed #{user.errors.full_messages}" if user.new_record? - present :data, user, with: Mobile::Entities::User - present :status, 0 - rescue => e - {status: 1, message: e.message} - end + user = us.register params.merge(:password_confirmation => params[:password], + :should_confirmation_password => true) + raise "register failed #{user.errors.full_messages}" if user.new_record? + present :data, user, with: Mobile::Entities::User + present :status, 0 end @@ -36,13 +32,9 @@ module Mobile put ':id' do authenticate! us = UsersService.new - begin - ue = us.edit_user params.merge(id: current_user.id) - present :data, user, with: Mobile::Entities::User - present :status, 0 - rescue => e - {status: 1, message: e.message} - end + ue = us.edit_user params.merge(id: current_user.id) + present :data, user, with: Mobile::Entities::User + present :status, 0 end @@ -55,13 +47,9 @@ module Mobile post 'password' do authenticate! us = UsersService.new - begin - ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) - present :data, user, with: Mobile::Entities::User - present :status, 0 - rescue => e - {status: 1, message: e.message} - end + ue = us.change_password params.merge(new_password_confirmation: params[:new_password]) + present :data, user, with: Mobile::Entities::User + present :status, 0 end end diff --git a/app/api/mobile/apis/watches.rb b/app/api/mobile/apis/watches.rb index 0715ff4a2..0ee454c25 100644 --- a/app/api/mobile/apis/watches.rb +++ b/app/api/mobile/apis/watches.rb @@ -9,8 +9,9 @@ module Mobile end get do authenticate! - ws = UsersService.new - ws.user_watcher(id: current_user.id) + us = UsersService.new + ws = us.user_watcher(id: current_user.id) + {status: 0, data: ws } end @@ -22,12 +23,8 @@ module Mobile 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 + {status:0, data: o} end @@ -39,12 +36,8 @@ module Mobile 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 + ws.unwatch(params.merge({current_user_id:current_user.id, object_type:'user' }) ) + {status: 0} end end diff --git a/app/api/mobile/middleware/error_handler.rb b/app/api/mobile/middleware/error_handler.rb new file mode 100644 index 000000000..3cbc74bd6 --- /dev/null +++ b/app/api/mobile/middleware/error_handler.rb @@ -0,0 +1,18 @@ +module Mobile + module Middleware + class ErrorHandler < Grape::Middleware::Base + def call!(env) + @env = env + begin + @app.call(@env) + rescue =>e + message = {status: 1, message: e.message }.to_json + status = 200 + headers = { 'Content-Type' => content_type } + Rack::Response.new([message], status, headers).finish + # throw :error, :message => e.message || options[:default_message], :status => 500 + end + end + end + end +end \ No newline at end of file