Class: UsersController
- Inherits:
-
ApplicationController
- Object
- ActionController::Base
- ApplicationController
- UsersController
- Defined in:
- app/controllers/users_controller.rb
Overview
This class defines the API methods related to user management
Instance Method Summary (collapse)
-
- (Object) check_email
Checks email availability.
-
- (Object) check_login
Checks login availability.
-
- (Object) create
Creates a new User.
-
- (Object) destroy
Deletes user's record.
-
- (Object) index
Returns all users.
-
- (Object) show
Gets user with login .
-
- (Object) update
Updates user information according to params.
Instance Method Details
- (Object) check_email
154 155 156 157 |
# File 'app/controllers/users_controller.rb', line 154 def check_email user = User.find_by_email(params[:user][:email]) user_exist_check user end |
- (Object) check_login
Checks login availability
Return values:
-
Login available: 200 OK => true
-
Login unavailable: 409 CONFLICT => false
POST Params:
-
user:
-
login: desired login (string, matching: /w+|/, length: <= 25 )
-
Query URLs:
-
POST /users/new/check_login
171 172 173 174 |
# File 'app/controllers/users_controller.rb', line 171 def check_login user = User.find_by_login(params[:user][:login]) user_exist_check user end |
- (Object) create
Creates a new User
Return values:
-
On success: 201 CREATED => user
-
On failure: 422 UNPROCESSABLE ENTITY => false (bad parameters)
URL params:
-
<format>: Output format wanted
POST params:
-
user:
-
login: desired login (string, matching: /w+|/, length: <= 25 )
-
first_name: user's first name (string, length: <= 50)
-
last_name: user's last name (string, length: <= 50)
-
email: user's email address (string, matching: /A@[a-zd-.].+z/i, length: <= 255)
-
birthdate:
-
year: user's year of birth (integer)
-
month: user's month of birth (integer)
-
day: user's day of birth (integer)
-
-
-
auth_token: time-based token generated (string, length == 8)
Query URLs:
-
POST /users
-
POST /users.<format>
76 77 78 79 80 81 82 |
# File 'app/controllers/users_controller.rb', line 76 def create user = User.new_with_params params success = user.save @response.body = success ? [user, user.personal_key] : user.errors @response.status = success ? :created : :unprocessable_entity respond end |
- (Object) destroy
Deletes user's record
Restricted to: authenticated user, admin
Return values:
-
On success: 200 OK => true
-
On failure: 404 NOT FOUND => false (no such user)
URL params:
-
<login>: User's login
-
<format>: Output format wanted
DELETE params:
-
auth_token: time-based token generated (string, length == 8)
Query URLs:
-
DELETE /users/<login>
-
DELETE /users/<login>.<format>
132 133 134 135 136 137 138 |
# File 'app/controllers/users_controller.rb', line 132 def destroy success = !@user.nil? @user.destroy if success @response.body = success ? true : false @response.status = success ? :ok : :not_found respond end |
- (Object) index
Returns all users
Restricted to: admin
URL params:
-
<format>: Output format wanted
Query URLs:
-
GET /users
-
GET /users.<format>
ToDo:
-
Restrict, and probably expect arguments to return a smaller set of users
20 21 22 23 24 25 |
# File 'app/controllers/users_controller.rb', line 20 def index @users = User.all @response.status = :ok @response.body = @users respond end |
- (Object) show
Gets user with login <login>
Restricted to: authenticated user, admin
Return values:
-
On success: 200 OK => user
-
On failure: 404 NOT FOUND => false (no such user)
URL params:
-
<login>: User's login
-
<format>: Output format wanted
GET params:
-
auth_token: time-based token generated (string, length == 8)
Query URLs:
-
GET /users/<login>
-
GET /users/<login>.<format>
45 46 47 48 49 50 |
# File 'app/controllers/users_controller.rb', line 45 def show success = !@user.nil? @response.body = success ? @user : false @response.status = success ? :ok : :not_found respond end |
- (Object) update
Updates user information according to params
Restricted to: authenticated user, admin
Return values:
-
On success: 200 OK => user
-
On failure:
-
422 UNPROCESSABLE ENTITY => false (bad parameters)
-
404 NOT FOUND => false (no such user)
-
URL params:
-
<format>: Output format wanted
PUT Params:
-
user:
-
auth_token: time-based token generated (string, length == 8)
Query URLs:
-
PUT /users/<login>
-
PUT /users/<login>.<format>
107 108 109 110 111 112 |
# File 'app/controllers/users_controller.rb', line 107 def update success = @user.update_attributes(params[:user]) @response.body = success ? @user : @user.errors @response.status = success ? :ok : :unprocessable_entity respond end |