Added example Swagger YARD doc to User controller.
This commit is contained in:
parent
ba02cb90dc
commit
565058f1b1
1 changed files with 69 additions and 126 deletions
|
@ -3,63 +3,15 @@
|
|||
class UsersController < ApplicationController
|
||||
before_filter :authentication_check, :except => [:create, :password_reset_send, :password_reset_verify]
|
||||
|
||||
=begin
|
||||
|
||||
Format:
|
||||
JSON
|
||||
|
||||
Example:
|
||||
{
|
||||
"id":2,
|
||||
"organization_id":null,
|
||||
"login":"m@edenhofer.de",
|
||||
"firstname":"Marti",
|
||||
"lastname":"Ede",
|
||||
"email":"m@edenhofer.de",
|
||||
"image_source":"http://www.gravatar.com/avatar/1c38b099f2344976005de69965733465?s=48",
|
||||
"web":"http://127.0.0.1",
|
||||
"password":"123",
|
||||
"phone":"112",
|
||||
"fax":"211",
|
||||
"mobile":"",
|
||||
"street":"",
|
||||
"zip":"",
|
||||
"city":"",
|
||||
"country":null,
|
||||
"verified":false,
|
||||
"active":true,
|
||||
"note":"some note",
|
||||
"source":null,
|
||||
"role_ids":[1,2],
|
||||
"group_ids":[1,2,3,4],
|
||||
}
|
||||
|
||||
=end
|
||||
|
||||
=begin
|
||||
|
||||
Resource:
|
||||
GET /api/v1/users.json
|
||||
|
||||
Response:
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"login": "some_login1",
|
||||
...
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"login": "some_login2",
|
||||
...
|
||||
}
|
||||
]
|
||||
|
||||
Test:
|
||||
curl http://localhost/api/v1/users.json -v -u #{login}:#{password}
|
||||
|
||||
=end
|
||||
|
||||
# @path [GET] /users
|
||||
#
|
||||
# @summary Returns a list of Users.
|
||||
# @notes Requester has to be in role 'Admin' or 'Agent' to
|
||||
# get a list of all Users. If requester is only in the
|
||||
# role 'Customer' he gets only his own Users entity.
|
||||
#
|
||||
# @response_message 200 [Array<User>] List of matching User records.
|
||||
# @response_message 401 Invalid session.
|
||||
def index
|
||||
|
||||
# only allow customer to fetch him self
|
||||
|
@ -75,23 +27,18 @@ curl http://localhost/api/v1/users.json -v -u #{login}:#{password}
|
|||
render :json => users_all, :status => :ok
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
Resource:
|
||||
GET /api/v1/users/1.json
|
||||
|
||||
Response:
|
||||
{
|
||||
"id": 1,
|
||||
"login": "some_login1",
|
||||
...
|
||||
},
|
||||
|
||||
Test:
|
||||
curl http://localhost/api/v1/users/#{id}.json -v -u #{login}:#{password}
|
||||
|
||||
=end
|
||||
|
||||
# @path [GET] /users/{id}
|
||||
#
|
||||
# @summary Returns the User with the requested identifier.
|
||||
# @notes Requester has to be in role 'Admin' or 'Agent' to
|
||||
# get a list of all Users. If requester is only in the
|
||||
# role 'Customer' he gets only his own Users entity.
|
||||
#
|
||||
# @parameter id(required) [Integer] The identifier matching the requested User.
|
||||
# @parameter full [Bool] If set a Asset structure with all connected Assets gets returned.
|
||||
#
|
||||
# @response_message 200 [User] User record matching the requested identifier.
|
||||
# @response_message 401 Invalid session.
|
||||
def show
|
||||
|
||||
# access deny
|
||||
|
@ -107,31 +54,15 @@ curl http://localhost/api/v1/users/#{id}.json -v -u #{login}:#{password}
|
|||
render :json => user
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
Resource:
|
||||
POST /api/v1/users.json
|
||||
|
||||
Payload:
|
||||
{
|
||||
"login": "some_login",
|
||||
"firstname": "some firstname",
|
||||
"lastname": "some lastname",
|
||||
"email": "some@example.com"
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
"id": 1,
|
||||
"login": "some_login",
|
||||
...
|
||||
},
|
||||
|
||||
Test:
|
||||
curl http://localhost/api/v1/users.json -v -u #{login}:#{password} -H "Content-Type: application/json" -X POST -d '{"login": "some_login","firstname": "some firstname","lastname": "some lastname","email": "some@example.com"}'
|
||||
|
||||
=end
|
||||
|
||||
# @path [POST] /users
|
||||
#
|
||||
# @summary Creates a User with the provided attribute values.
|
||||
# @notes TODO.
|
||||
#
|
||||
# @parameter User(required,body) [User] The attribute value structure needed to create a User.
|
||||
#
|
||||
# @response_message 200 [User] Created User record.
|
||||
# @response_message 401 Invalid session.
|
||||
def create
|
||||
user = User.new( User.param_cleanup(params) )
|
||||
|
||||
|
@ -250,31 +181,16 @@ curl http://localhost/api/v1/users.json -v -u #{login}:#{password} -H "Content-T
|
|||
end
|
||||
end
|
||||
|
||||
=begin
|
||||
|
||||
Resource:
|
||||
PUT /api/v1/users/#{id}.json
|
||||
|
||||
Payload:
|
||||
{
|
||||
"login": "some_login",
|
||||
"firstname": "some firstname",
|
||||
"lastname": "some lastname",
|
||||
"email": "some@example.com"
|
||||
}
|
||||
|
||||
Response:
|
||||
{
|
||||
"id": 2,
|
||||
"login": "some_login",
|
||||
...
|
||||
},
|
||||
|
||||
Test:
|
||||
curl http://localhost/api/v1/users/2.json -v -u #{login}:#{password} -H "Content-Type: application/json" -X PUT -d '{"login": "some_login","firstname": "some firstname","lastname": "some lastname","email": "some@example.com"}'
|
||||
|
||||
=end
|
||||
|
||||
# @path [PUT] /users/{id}
|
||||
#
|
||||
# @summary Updates the User matching the identifier with the provided attribute values.
|
||||
# @notes TODO.
|
||||
#
|
||||
# @parameter id(required) [Integer] The identifier matching the requested User.
|
||||
# @parameter User(required,body) [User] The attribute value structure needed to update a User.
|
||||
#
|
||||
# @response_message 200 [User] Updated User record.
|
||||
# @response_message 401 Invalid session.
|
||||
def update
|
||||
|
||||
# access deny
|
||||
|
@ -309,13 +225,40 @@ curl http://localhost/api/v1/users/2.json -v -u #{login}:#{password} -H "Content
|
|||
end
|
||||
end
|
||||
|
||||
# DELETE /api/v1/users/1
|
||||
# @path [DELETE] /users/{id}
|
||||
#
|
||||
# @summary Deletes the User matching the identifier.
|
||||
# @notes Requester has to be in role 'Admin' to be able to delete a User.
|
||||
#
|
||||
# @parameter id(required) [User] The identifier matching the requested User.
|
||||
#
|
||||
# @response_message 200 User successfully deleted.
|
||||
# @response_message 401 Invalid session.
|
||||
def destroy
|
||||
return if deny_if_not_role('Admin')
|
||||
model_destory_render(User, params)
|
||||
end
|
||||
|
||||
# GET /api/v1/users/search
|
||||
# @path [GET] /users/search
|
||||
#
|
||||
# @tag Search
|
||||
# @tag User
|
||||
#
|
||||
# @summary Searches the User matching the given expression(s).
|
||||
# @notes TODO: It's possible to use the SOLR search syntax.
|
||||
# Requester has to be in role 'Admin' or 'Agent' to
|
||||
# be able to search Users. If requester is only in the
|
||||
# role 'Customer' he gets a permission denied message.
|
||||
#
|
||||
# @parameter term [String] The search term.
|
||||
# @parameter limit [Integer] The limit of search results.
|
||||
# @parameter role_ids(multi) [Array<String>] A list of Role identifiers to which the Users have to be allocated to.
|
||||
# @parameter full [Boolean] Defines if the result should be
|
||||
# true: { user_ids => [1,2,...], assets => {...} }
|
||||
# or false: [{:id => user.id, :label => "firstname lastname <email>", :value => "firstname lastname <email>"},...].
|
||||
#
|
||||
# @response_message 200 [Array<User>] Matching Users.
|
||||
# @response_message 401 Invalid session.
|
||||
def search
|
||||
|
||||
if is_role('Customer') && !is_role('Admin') && !is_role('Agent')
|
||||
|
|
Loading…
Reference in a new issue