class PlaceOS::Api::Drivers
- PlaceOS::Api::Drivers
- PlaceOS::Api::Application
- ActionController::Base
- Reference
- Object
Defined in:
placeos-rest-api/controllers/drivers.crConstant Summary
-
AFTER =
{} of Nil => Nil
-
AROUND =
{} of Nil => Nil
-
BEFORE =
{set_request_id => {nil, nil}, authorize! => {nil, [root, mqtt_user, mqtt_access]}, set_user_id => {nil, [root, mqtt_user, mqtt_access]}, can_read => {[index, show], nil}, can_write => {[create, update, destroy, remove, update_alt], nil}, check_admin => {nil, [index, show]}, check_support => {[index, show], nil}, current_driver => {[show, update, update_alt, destroy, recompile], nil}, body => {[create, update, update_alt], nil}} of Nil => Nil
-
FORCE =
{} of Nil => Nil
-
LOCAL_AFTER =
{} of Nil => Nil
-
function => options
-
LOCAL_AROUND =
{} of Nil => Nil
-
function => options
-
LOCAL_BEFORE =
{can_read => {[index, show], nil}, can_write => {[create, update, destroy, remove, update_alt], nil}, check_admin => {nil, [index, show]}, check_support => {[index, show], nil}, current_driver => {[show, update, update_alt, destroy, recompile], nil}, body => {[create, update, update_alt], nil}} of Nil => Nil
-
function => options
-
LOCAL_FORCE =
{} of Nil => Nil
-
function => options
-
LOCAL_RESCUE =
{} of Nil => Nil
-
function => options
-
LOCAL_ROUTES =
{update_alt => {"put", "/:id", nil, do update end, false}, recompile => {"post", "/:id/recompile", nil, do if current_driver.commit.starts_with?("RECOMPILE") head(:already_reported) else if ( recompiled = Drivers.recompile(current_driver)) if recompiled.destroyed? head(:not_found) else render(json: recompiled) end else head(:request_timeout) end end end, false}, compiled => {"get", "/:id/compiled", nil, do if ( repository = current_driver.repository).nil? Log.error do {repository_id: current_driver.repository_id, message: "failed to load driver's repository"} end head(:internal_server_error) end compiled = self.class.driver_compiled?(current_driver, repository, request_id) Log.info do "#{compiled ? "" : "not "}compiled" end if compiled head(:ok) else if current_driver.compilation_output.nil? head(:not_found) else render(:service_unavailable, json: {compilation_output: current_driver.compilation_output}) end end end, false}} of Nil => Nil
-
function => options
-
LOCAL_SKIP =
{} of Nil => Nil
-
function => options
-
Log =
::PlaceOS::Api::Log.for(self)
-
NAMESPACE =
["/api/engine/v2/drivers/"]
-
default namespace based on class
-
RESCUE =
{Error::NoBody => {error_no_body, do |_error| message = "missing request body" Log.debug do message end return render_error(HTTP::Status::BAD_REQUEST, message) end}, JSON::SerializableError => {json_serializable_error, do |error| message = "Missing or extraneous properties in client JSON" Log.debug(exception: error) do message end if Api.production? return render_error(HTTP::Status::BAD_REQUEST, message) else return render_error(HTTP::Status::BAD_REQUEST, error.message, backtrace: error.backtrace?) end end}, JSON::ParseException => {json_parse_exception, do |error| message = "Failed to parse client JSON" Log.debug(exception: error) do message end if Api.production? return render_error(HTTP::Status::BAD_REQUEST, message) else return render_error(HTTP::Status::BAD_REQUEST, error.message, backtrace: error.backtrace?) end end}, Error::Unauthorized => {error_unauthorized, do |error| Log.debug do error.message end head(:unauthorized) end}, Error::Forbidden => {error_forbidden, do |error| Log.debug do error.message end head(:forbidden) end}, RethinkORM::Error::DocumentNotFound => {rethink_orm_error_document_not_found, do |error| Log.debug do error.message end head(:not_found) end}, RethinkORM::Error::DocumentInvalid => {rethink_orm_error_document_invalid, do |error| Log.debug do error.message end return render_error(HTTP::Status::UNPROCESSABLE_ENTITY, error.message) end}, Error::InvalidParams => {error_invalid_params, do |error| model_errors = error.params.errors.map(&.to_s) Log.debug(exception: error) do {message: "Invalid params", model_errors: model_errors} end return render_error(HTTP::Status::BAD_REQUEST, "Invalid params: #{model_errors.join(", ")}") end}} of Nil => Nil
-
ROUTE_RESOURCE =
"drivers"
-
ROUTES =
{update_alt => {"put", "/:id", nil, do update end, false}, recompile => {"post", "/:id/recompile", nil, do if current_driver.commit.starts_with?("RECOMPILE") head(:already_reported) else if ( recompiled = Drivers.recompile(current_driver)) if recompiled.destroyed? head(:not_found) else render(json: recompiled) end else head(:request_timeout) end end end, false}, compiled => {"get", "/:id/compiled", nil, do if ( repository = current_driver.repository).nil? Log.error do {repository_id: current_driver.repository_id, message: "failed to load driver's repository"} end head(:internal_server_error) end compiled = self.class.driver_compiled?(current_driver, repository, request_id) Log.info do "#{compiled ? "" : "not "}compiled" end if compiled head(:ok) else if current_driver.compilation_output.nil? head(:not_found) else render(:service_unavailable, json: {compilation_output: current_driver.compilation_output}) end end end, false}, index => {"get", "/", nil, nil, false}, show => {"get", "/:id", nil, nil, false}, update => {"patch", "/:id", nil, nil, false}, create => {"post", "/", nil, nil, false}, destroy => {"delete", "/:id", nil, nil, false}} of Nil => Nil
-
SKIP =
{} of Nil => Nil
Class Method Summary
-
.__init_routes__(router)
Routes call the functions generated above
-
.__route_list__
Create draw_routes function
-
.base_route
Helper for obtaining base route
-
.compilation_status(driver : Model::Driver, request_id : String | Nil = "migrate to Log") : Hash(String, Bool)
Returns the compilation status of a driver across the cluster
-
.compiled(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
- .context(method : String, route : String, route_params : Hash(String, String) | Nil = nil, headers : Hash(String, String) | Nil = nil, body : String | Bytes | IO | Nil = nil, &)
-
.create(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
-
.delete__api_engine_v2_drivers___id(context, head_request)
Create draw_routes function
-
.destroy(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
- .driver_compiled?(driver : Model::Driver, repository : Model::Repository, request_id : String, key : String | Nil = nil) : Bool
-
.get__api_engine_v2_drivers__(context, head_request)
Create draw_routes function
-
.get__api_engine_v2_drivers___id(context, head_request)
Create draw_routes function
-
.get__api_engine_v2_drivers___id_compiled(context, head_request)
Create draw_routes function
-
.index(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
-
.patch__api_engine_v2_drivers___id(context, head_request)
Create draw_routes function
-
.post__api_engine_v2_drivers__(context, head_request)
Create draw_routes function
-
.post__api_engine_v2_drivers___id_recompile(context, head_request)
Create draw_routes function
-
.put__api_engine_v2_drivers___id(context, head_request)
Generate functions for each route
- .recompile(driver : Model::Driver)
-
.recompile(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
-
.show(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
-
.update(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Create draw_routes function
-
.update_alt(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts)
Helper methods for performing redirect_to calls
Instance Method Summary
-
#base_route(*args, **options)
Helper for obtaining base route
-
#base_route(*args, **options, &)
Helper for obtaining base route
-
#compiled
Check if the core responsible for the driver has finished compilation
- #create
- #current_driver : Model::Driver
- #destroy
- #error_forbidden(error)
- #error_invalid_params(error)
-
#error_no_body(_error)
Create functions as required for errors Skip the generating methods for existing handlers
- #error_unauthorized(error)
- #index
- #json_parse_exception(error)
- #json_serializable_error(error)
- #recompile
- #rethink_orm_error_document_invalid(error)
- #rethink_orm_error_document_not_found(error)
- #show
- #update
- #update_alt
Macro Summary
- __inherit_after_filters__
- __inherit_around_filters__
- __inherit_before_filters__
- __inherit_force_filters__
- __inherit_rescue_filters__
- __inherit_routes_filters__
- __inherit_skip_filters__
- generate_scope_check(*scopes)
Instance methods inherited from class PlaceOS::Api::Application
body : IO
body,
boolean_param(key : String, default : Bool = false, allow_empty : Bool = false) : Bool
boolean_param,
paginate_results(elastic, query, route = base_route)
paginate_results,
request_id : String
request_id,
set_collection_headers(size : Int32, content_type : String)
set_collection_headers,
set_request_id
set_request_id,
set_user_id
set_user_id
Class methods inherited from class PlaceOS::Api::Application
context(method : String, route : String, route_params : Hash(String, String) | Nil = nil, headers : Hash(String, String) | Nil = nil, body : String | Bytes | IO | Nil = nil, &)
context,
core_discovery : Discovery::Core
core_discovery
Class methods inherited from module PlaceOS::Api::Utils::Scopes
can_scope_access?(user_token : UserJWT, scope : String, access : Access)
can_scope_access?,
can_scopes_access!(user_token : UserJWT, scopes : Enumerable(String), access : Access)
can_scopes_access!
Instance methods inherited from module PlaceOS::Api::Utils::CurrentUser
authorize! : Model::UserJWT
authorize!,
check_admin
check_admin,
check_oauth_scope
check_oauth_scope,
check_support
check_support,
current_authority : Model::Authority | Nil
current_authority,
current_user : Model::User
current_user,
is_admin?
is_admin?,
is_support?
is_support?,
user_token : Model::UserJWT
user_token
Instance methods inherited from module PlaceOS::Api::Utils::Responders
handle_execute_error(error : Driver::Proxy::RemoteDriver::Error, respond : Bool = true)
handle_execute_error,
render_error(status : HTTP::Status, message : String | Nil, **additional)
render_error,
restrict_attributes(model, only : Array(String) | Nil = nil, except : Array(String) | Nil = nil, fields : Hash | Nil = nil) : Hash
restrict_attributes,
save_and_respond(resource, &)save_and_respond(resource) save_and_respond, save_and_status(resource) save_and_status, with_fields(model, fields) : Hash with_fields
Class Method Detail
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Returns the compilation status of a driver across the cluster
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Create draw_routes function
Create instance of controller class init with context, params and logger protocol checks (https etc) controller instance created begin exception helpers inline the around filters inline the before filters inline the action inline the after filters rescue exception handlers
Helper methods for performing redirect_to calls
Instance Method Detail
Create functions as required for errors Skip the generating methods for existing handlers