|  |  | #coding=utf-8
 | 
						
						
						
							|  |  | module Mobile
 | 
						
						
						
							|  |  |   module Apis
 | 
						
						
						
							|  |  |     class Users < Grape::API
 | 
						
						
						
							|  |  |       resource :users do
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         desc "注册用户"
 | 
						
						
						
							|  |  |         params do
 | 
						
						
						
							|  |  |           requires :login, type: String, desc: 'username'
 | 
						
						
						
							|  |  |           requires :mail, type: String, desc: 'mail'
 | 
						
						
						
							|  |  |           requires :password, type: String, desc: 'password'
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |         post do
 | 
						
						
						
							|  |  |           us = UsersService.new
 | 
						
						
						
							|  |  |           user = us.register params.merge(:password_confirmation => params[:password],
 | 
						
						
						
							|  |  |                                           :should_confirmation_password => true)
 | 
						
						
						
							|  |  |           raise "该邮箱已经被注册过了" if user.new_record?
 | 
						
						
						
							|  |  |           
 | 
						
						
						
							|  |  |           present :data, user, with: Mobile::Entities::User
 | 
						
						
						
							|  |  |           present :status, 0
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         desc "显示用户"
 | 
						
						
						
							|  |  |         params do
 | 
						
						
						
							|  |  |           requires :id, type: Integer
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |         route_param :id do
 | 
						
						
						
							|  |  |           get do
 | 
						
						
						
							|  |  |             us = UsersService.new
 | 
						
						
						
							|  |  |             ue = us.show_user params
 | 
						
						
						
							|  |  |             present :data, ue,with: Mobile::Entities::User
 | 
						
						
						
							|  |  |             present :status, 0
 | 
						
						
						
							|  |  |           end
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         desc "修改用户"
 | 
						
						
						
							|  |  |         params do
 | 
						
						
						
							|  |  |           requires :token, type: String
 | 
						
						
						
							|  |  |           #optional :file, type: File, desc: 'avatar'
 | 
						
						
						
							|  |  |           optional :occupation, type: String
 | 
						
						
						
							|  |  |           optional :brief_introduction, type: String
 | 
						
						
						
							|  |  |           optional :province, type: String
 | 
						
						
						
							|  |  |           optional :city, type: String
 | 
						
						
						
							|  |  |           optional :gender, type: Integer
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |         put ':id' do
 | 
						
						
						
							|  |  |           authenticate!
 | 
						
						
						
							|  |  |           us = UsersService.new
 | 
						
						
						
							|  |  |           ue = us.edit_user params.merge(id: current_user.id)
 | 
						
						
						
							|  |  |           present :data, ue,with: Mobile::Entities::User
 | 
						
						
						
							|  |  |           present :status, 0
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         desc '获取用户课程'
 | 
						
						
						
							|  |  |         params do
 | 
						
						
						
							|  |  |           optional :token, type: String
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         get ':id/courses' do
 | 
						
						
						
							|  |  |           us = UsersService.new
 | 
						
						
						
							|  |  |           ue = us.user_courses_list params,current_user.nil? ? User.find(2):current_user
 | 
						
						
						
							|  |  |           present :data, ue,with: Mobile::Entities::Course
 | 
						
						
						
							|  |  |           present :status, 0
 | 
						
						
						
							|  |  |         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
 | 
						
						
						
							|  |  |           user = us.change_password params.merge(current_user_id: current_user.id,
 | 
						
						
						
							|  |  |                                                new_password_confirmation: params[:new_password])
 | 
						
						
						
							|  |  |           present :data, user, with: Mobile::Entities::User
 | 
						
						
						
							|  |  |           present :status, 0
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |         desc "用户搜索"
 | 
						
						
						
							|  |  |         params do
 | 
						
						
						
							|  |  |           requires :name, type: String, desc: '用户名关键字'
 | 
						
						
						
							|  |  |           requires :search_by, type: String,desc: '搜索依据:0 昵称,1 用户名,2 邮箱,3 昵称和姓名'
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  |         get 'search/search_user' do
 | 
						
						
						
							|  |  |           us = UsersService.new
 | 
						
						
						
							|  |  |           user = us.search_user params
 | 
						
						
						
							|  |  |           present :data, user, with: Mobile::Entities::User
 | 
						
						
						
							|  |  |           present :status, 0
 | 
						
						
						
							|  |  |         end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       end
 | 
						
						
						
							|  |  |     end
 | 
						
						
						
							|  |  |   end
 | 
						
						
						
							|  |  | end
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 |