Class: Nimbus::V4::BaseController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Nimbus::V4::BaseController
- Defined in:
- app/controllers/mno_enterprise/nimbus/v4/base_controller.rb
Direct Known Subclasses
AppInstancesController, AppsController, EventsController, OrganizationsController, ResourceInstancesController, ServicesController, StatisticsController, UsersController
Defined Under Namespace
Classes: ResponseCode
Constant Summary collapse
- INTERNAL_ERROR =
ResponseCode.new('unknownError', 500)
- RESOURCE_NOT_FOUND =
ResponseCode.new('notFound', 404)
- PARENT_RESOURCE_NOT_FOUND =
ResponseCode.new('parentNotFound', 404)
- AUTHENTICATION_ERROR =
ResponseCode.new('notAuthenticated', 401)
- VALIDATION_ERROR =
ResponseCode.new('validationError', 400)
- NO_ERROR =
ResponseCode.new('noError', 200)
Instance Method Summary collapse
-
#create ⇒ Object
POST /api/nimbus/v4/<resources_name> Create new resource and return representation.
-
#destroy ⇒ Object
DELETE /api/nimbus/v4/<resources_name>/:id Delete a resource.
-
#index ⇒ Object
GET /api/nimbus/v4/<resources_name> Get all resources.
-
#show ⇒ Object
GET /api/nimbus/v4/:id Show specific resource.
-
#update ⇒ Object
PUT /api/nimbus/v4/<resources_name>/:id Change, suspend or reactivate a resource Operation passed in body: “operation”:“suspend”.
Instance Method Details
#create ⇒ Object
POST /api/nimbus/v4/<resources_name> Create new resource and return representation
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/controllers/mno_enterprise/nimbus/v4/base_controller.rb', line 48 def create unless params[:data] render_error VALIDATION_ERROR, 'Body does not contain the field: data' return false end attributes = params[:data].select { |k, v| params_create_whitelist.include?(k.to_sym) } @resource = build_resource(attributes) # Save resource or set error code and status unless @resource.save render_errors VALIDATION_ERROR, @resource.errors return end after_create_resource(@resource) render_response(@resource, 201) end |
#destroy ⇒ Object
DELETE /api/nimbus/v4/<resources_name>/:id Delete a resource
99 100 101 102 103 104 105 106 107 108 109 |
# File 'app/controllers/mno_enterprise/nimbus/v4/base_controller.rb', line 99 def destroy @resource = get_resource(params[:id]) # Check resource exists unless @resource render_error RESOURCE_NOT_FOUND, 'Resource not found: ' + params[:id] return end destroy_resource(@resource) render_response(@resource) end |
#index ⇒ Object
GET /api/nimbus/v4/<resources_name> Get all resources
28 29 30 |
# File 'app/controllers/mno_enterprise/nimbus/v4/base_controller.rb', line 28 def index render_response(get_resources) end |
#show ⇒ Object
GET /api/nimbus/v4/:id Show specific resource
34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/controllers/mno_enterprise/nimbus/v4/base_controller.rb', line 34 def show @resource = get_resource(params[:id]) if @resource render_response(@resource) return else render_error RESOURCE_NOT_FOUND, 'Resource not found: ' + params[:id] return end end |
#update ⇒ Object
PUT /api/nimbus/v4/<resources_name>/:id Change, suspend or reactivate a resource Operation passed in body: “operation”:“suspend”
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'app/controllers/mno_enterprise/nimbus/v4/base_controller.rb', line 72 def update attributes = (params[:data] || {}).select { |k, v| params_update_whitelist.include?(k.to_sym) } @resource = get_resource(params[:id]) # Check resource exists unless @resource render_error RESOURCE_NOT_FOUND, 'Resource not found: ' + params[:id] return false end if attributes.any? update_resource(@resource, attributes) unless @resource.save render_errors VALIDATION_ERROR, @resource.errors return false end end after_update_resource(@resource, attributes) render_response(@resource) end |