Class: PersonalKeyController

Inherits:
ApplicationController show all
Defined in:
app/controllers/personal_key_controller.rb

Overview

This class defines the API methods related to personal_key management

Instance Method Summary (collapse)

Instance Method Details

- (Object) create

Revokes the active personal key and creates a new one

Return values:

  • On success: 201 CREATED => personal_key

  • On failure:

    • 422 UNPROCESSABLE ENTITY => false (bad parameters)

    • 404 NOT FOUND => false (no such @user)

POST params:

  • empty parameter set to avoid 411 LENGTH REQUIRED

  • auth_token: time-based token generated (string, length == 8)

URL params:

  • <login>: User's login

  • <format>: Output format wanted

Query URLs:

  • POST /users/<login>/personal_key

  • POST /users/<login>/personal_key.<format>



49
50
51
52
53
54
55
56
# File 'app/controllers/personal_key_controller.rb', line 49

def create
  PersonalKey.current.find_by_user_id(@user.id).revoke
  personal_key = @user.personal_keys.create
  success = personal_key.save
  @response.body = success ? personal_key : personal_key.errors
  @response.status = success ? :created : :unprocessable_entity
  respond
end

- (Object) destroy

Deletes the specified key

Return values:

  • On success: 200 OK => true

  • On failure: 404 NOT FOUND => false (no such @user, or no such personal_key)

URL params:

  • <login>: User's login

  • <key_id>: ID of the personal key

  • <format>: Output format wanted

DELETE params:

  • auth_token: time-based token generated (string, length == 8)

Query URLs:

  • DELETE /users/<login>/personal_key/<key_id>

  • DELETE /users/<login>/personal_key/<key_id>.<format>



100
101
102
103
104
105
106
107
# File 'app/controllers/personal_key_controller.rb', line 100

def destroy
  personal_key = @user.personal_keys.find_by_id(params[:id]) unless @user.nil?
  success = !(personal_key.nil? or personal_key.revoked?)
  @response.body = success ? true : false
  @response.status = success ? :ok : :not_found
  personal_key.revoke if success
  respond
end

- (Object) index

Lists all the @user's personal keys

Return values;

  • On success: 200 OK => personal keys

  • On failure: 404 NOT FOUND => false (no such @user)

URL params:

  • <login>: the @user the personal keys belongs to

  • <format>: the output format wanted

GET params:

  • auth_token: time-based token generated (string, length == 8)

Query URLs: GET * /users/<login>/personal_key GET * /users/<login>/personal_key.<format>



23
24
25
26
27
28
# File 'app/controllers/personal_key_controller.rb', line 23

def index
  success = !@user.nil?
  @response.body = success ? @user.personal_keys : false
  @response.status = success ? :ok : :not_found
  respond
end

- (Object) show

Gets the personal key of the required @user

Return values:

  • On success: 200 OK => personal_key

  • On failure: 404 NOT FOUND => false (no such @user, or no such personal_key)

URL params:

  • <login>: User's login

  • <key_id>: ID of the personal key

  • <format>: Output format wanted

GET params:

  • auth_token: time-based token generated (string, length == 8)

Query URLs:

  • GET /users/<login>/personal_key/<key_id>

  • GET /users/<login>/personal_key/<key_id>.<format>



75
76
77
78
79
80
81
# File 'app/controllers/personal_key_controller.rb', line 75

def show
  personal_key = @user.personal_keys.find_by_id(params[:id]) unless @user.nil?
  success = !(personal_key.nil? or personal_key.revoked?)
  @response.body = success ? personal_key : false
  @response.status = success ? :ok : :not_found
  respond
end