socialforge/app/api/mobile/apis/users.rb

209 lines
7.3 KiB
Ruby
Raw Normal View History

2014-12-10 18:26:38 +08:00
#coding=utf-8
2014-11-27 19:43:04 +08:00
module Mobile
module Apis
2014-12-09 16:36:43 +08:00
class Users < Grape::API
resource :users do
2014-12-04 10:11:55 +08:00
desc "查询是否已绑定"
params do
requires :openid, type: String, desc: 'wechat openid'
end
post 'isbind' do
openid = params[:openid]
uw = UserWechat.where(openid: openid).first
raise "还未绑定trustie帐户" unless uw
user = uw.user
::ApiKey.delete_all(user_id: user.id)
key = ::ApiKey.create!(user_id: user.id)
present status: 0, token: key.access_token
end
2016-06-17 18:18:03 +08:00
desc "绑定微信用户"
params do
requires :login, type: String, desc: 'username'
requires :password, type: String, desc: 'password'
end
2016-06-17 18:42:58 +08:00
post 'wxbind' do
openid = session[:wechat_openid]
logger.debug "openid ============== #{openid}"
2016-06-17 18:37:26 +08:00
raise "无法获取到openid,请在微信中打开本页面" unless openid
2016-06-17 18:54:24 +08:00
uw = UserWechat.where(openid: openid).first
raise "此微信号已绑定用户(#{uw.user.login}), 不能重复绑定" if uw
2016-06-17 18:37:26 +08:00
2016-06-17 18:50:43 +08:00
user, last_login_on = User.try_to_login(params[:login], params[:password])
2016-06-17 18:37:26 +08:00
raise "用户名或密码错误,请重新输入" unless user
#补全用户信息
raise "此用户已经绑定过公众号, 请换一个帐户试试" if user.user_wechat
UserWechat.create!(
openid: openid,
user: user
)
ws = WechatService.new
ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, Time.now.strftime("%Y-%m-%d"))
present status: 0, message: '您已成功绑定Trustie平台'
2016-06-17 18:18:03 +08:00
end
2014-12-10 16:23:56 +08:00
desc "注册用户"
2014-12-09 16:36:43 +08:00
params do
requires :login, type: String, desc: 'username'
requires :mail, type: String, desc: 'mail'
requires :password, type: String, desc: 'password'
end
post do
2016-06-29 21:09:49 +08:00
openid = session[:wechat_openid]
logger.debug "openid ============== #{openid}"
raise "无法获取到openid,请在微信中打开本页面" unless openid
2014-12-09 16:36:43 +08:00
us = UsersService.new
2014-12-10 17:29:39 +08:00
user = us.register params.merge(:password_confirmation => params[:password],
:should_confirmation_password => true)
2016-06-29 21:09:49 +08:00
raise user.errors.full_messages.first if user.new_record?
UserWechat.create!(
openid: openid,
user: user
)
ws = WechatService.new
ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台", user.login, Time.now.strftime("%Y-%m-%d"))
2014-12-10 17:29:39 +08:00
present :data, user, with: Mobile::Entities::User
present :status, 0
2014-11-27 19:43:04 +08:00
end
2015-01-06 16:59:22 +08:00
desc "显示用户"
params do
requires :id, type: Integer
2015-01-06 16:59:22 +08:00
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
2015-01-06 16:59:22 +08:00
end
2014-12-10 11:56:33 +08:00
2014-12-10 16:23:56 +08:00
desc "修改用户"
2014-12-10 11:56:33 +08:00
params do
2014-12-10 16:23:56 +08:00
requires :token, type: String
2014-12-10 11:56:33 +08:00
#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
2014-12-10 17:29:39 +08:00
ue = us.edit_user params.merge(id: current_user.id)
present :data, ue,with: Mobile::Entities::User
2014-12-10 17:29:39 +08:00
present :status, 0
2014-12-10 16:51:19 +08:00
end
desc '获取用户课程'
params do
2015-01-21 11:28:09 +08:00
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
2014-12-10 16:51:19 +08:00
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
2014-12-23 14:46:23 +08:00
user = us.change_password params.merge(current_user_id: current_user.id,
2014-12-23 10:16:23 +08:00
new_password_confirmation: params[:new_password])
2014-12-10 17:29:39 +08:00
present :data, user, with: Mobile::Entities::User
present :status, 0
2014-12-10 11:56:33 +08:00
end
desc "用户搜索"
2014-12-13 21:52:26 +08:00
params do
requires :name, type: String, desc: '用户名关键字'
requires :search_by, type: String,desc: '搜索依据0 登录名1 用户名2 邮箱,3 登录名和姓名'
optional :is_search_assitant,type:Integer,desc:'是否搜索注册用户来作为助教'
optional :course_id,type:Integer,desc: '课程id搜索注册用户不为该课程教师的其他用户'
2015-05-15 14:04:05 +08:00
optional :user_id,type:Integer,desc:'用户id'
2014-12-13 21:52:26 +08:00
end
get 'search/search_user' do
2014-12-13 21:52:26 +08:00
us = UsersService.new
user = us.search_user params
present :data, user, with: Mobile::Entities::User
present :status, 0
end
desc "用户留言"
params do
requires :token, type: String
requires :user_id, type: Integer,desc: '被留言的用户id'
2015-05-23 17:13:38 +08:00
requires :page,type:Integer,desc:'请求数据的页码'
end
get ':user_id/messages' do
us = UsersService.new
jours = us.get_all_messages params
present :data,jours,with:Mobile::Entities::Jours
present :status,0
end
2015-05-26 09:48:22 +08:00
desc "回复用户留言"
params do
requires :token, type: String
requires :user_id, type: Integer,desc: '被留言的用户id'
requires :content,type:String,desc:'留言内容'
2015-05-21 15:57:35 +08:00
requires :ref_user_id,type:Integer,desc:'被回复的用户id'
requires :parent_id,type:Integer,desc:'留言父id'
requires :ref_message_id,type:Integer,desc:'引用消息id'
optional :type,type:Integer,desc:'回复类型'
optional :course_id,type:Integer,desc:'课程id'
end
2015-05-26 09:48:22 +08:00
post ':user_id/reply_message' do
us = UsersService.new
2015-05-21 15:57:35 +08:00
jours = us.reply_user_messages params,current_user
present :status,0
end
2015-05-26 09:48:22 +08:00
desc "给用户留言"
params do
requires :token, type: String
requires :user_id, type: Integer,desc:'被留言的用户id'
requires :content, type: String,desc:'留言内容'
end
post ':user_id/leave_message' do
us = UsersService.new
us.leave_message params,current_user
present :data,0
end
desc "与我相关"
params do
requires :token, type: String
requires :page,type:Integer,desc:'页码'
end
get ':user_id/all_my_dynamic' do
us = UsersService.new
my_jours = us.reply_my_messages params,current_user
present :data,my_jours,with:Mobile::Entities::Jours
present :status,0
end
end
2014-11-27 19:43:04 +08:00
end
end
end