Class: Auth::Api::UserController

Inherits:
BaseController
  • Object
show all
Defined in:
app/controllers/auth/api/user_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/controllers/auth/api/user_controller.rb', line 30

def create
  if params[:account].include?('@')
    @user = User.find_or_initialize_by(email: params[:account])
  else
    @user = User.find_or_initialize_by(mobile: params[:account])
  end

  if @user.persisted?
    if @user.can_login?(params)
       @user
      render json: { user: @user.as_json(only:[:id, :name, :mobile], methods: [:auth_token, :avatar_url]) } and return
    end
  else
    @mobile_token = MobileToken.valid.find_by(token: params[:token], account: params[:account])

    if @mobile_token
      @user.mobile_confirmed = true
      @mobile_token.user = @user
    else
      render json: { message: 'Token is invalid' }, status: :bad_request and return
    end

    if @user.join(user_params)
       @user
      render json: { user: @user.as_json(only:[:id, :name, :mobile], methods: [:auth_token, :avatar_url]) } and return
    end
  end

  process_errors(@user)
end

#newObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/auth/api/user_controller.rb', line 6

def new
  if params[:account].include?('@')
    @user = User.find_by(email: params[:account])
    if @user
      @verify_token = @user.email_token
    else
      @verify_token = EmailToken.valid.find_or_initialize_by(account: params[:account])
    end
  else
    @user = User.find_by(mobile: params[:account])
    if @user
      @verify_token = @user.mobile_token
    else
      @verify_token = MobileToken.valid.find_or_initialize_by(account: params[:account])
    end
  end

  if @verify_token.save_with_send
    render json: { present: @user.present?, message: 'Validation code has been sent!' }
  else
    render json: { message: 'Token is invalid' }, status: :bad_request
  end
end

#resetObject

40001 登陆;



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'app/controllers/auth/api/user_controller.rb', line 62

def reset
  if params[:account].include?('@')
    @user = User.find_by(email: params[:account])
  else
    @user = User.find_by(mobile: params[:account])
  end

  unless @user
    render json: { code: 40001, message: 'Please join first' }, status: :bad_request and return
  end

  @token = @user.verify_tokens.valid.find_by(token: params[:token])
  if @token
    @user.assign_attributes user_params
    if @user.save
      render json: { user: @user.as_json(only:[:id, :name, :mobile], methods: [:auth_token, :avatar_url]) } and return
    else
      process_errors(@user)
    end
  else
    render json: { message: 'Token is invalid' }, status: :bad_request
  end
end