class PlaceOS::Api::Edges

Defined in:

placeos-rest-api/controllers/edges.cr

Constant Summary

Log = ::PlaceOS::Api::Log.for(self)
PARSER_LIST = ["application/json"]
RESPONDER_LIST = ["application/json"]
ROUTE_RESOURCE = "edges"

Class Method Summary

Macro Summary

Instance Method Summary

Instance methods inherited from class PlaceOS::Api::Application

bad_media_type(error) : ContentError bad_media_type, build_search_params(query : String = "*", limit : UInt32 = 100_u32, offset : UInt32 = 0_u32, ref : String | Nil = nil, fields : Array(String) = [] of String) build_search_params, invalid_param(error) : ParameterError invalid_param, model_validation(error) : ValidationError model_validation, paginate_results(elastic, query, route = base_route) paginate_results, request_id : String request_id, resource_access_forbidden(error) : Nil resource_access_forbidden, resource_conflict(error) : CommonError resource_conflict, resource_not_found(error) : CommonError resource_not_found, resource_requires_authentication(error) : CommonError resource_requires_authentication, resource_timeout(error) : CommonError resource_timeout, search_params : Hash(String, String | Array(String)) search_params, search_params? : Hash(String, String | Array(String)) | Nil search_params?, set_collection_headers(size : Int32, content_type : String) set_collection_headers, set_request_id set_request_id, set_user_id set_user_id, validation_failed(error) : CommonError validation_failed

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!

Macros inherited from module PlaceOS::Api::Utils::Scopes

__create_scope_checks__ __create_scope_checks__, can_scope_access?(scope, access) can_scope_access?, can_scopes_access!(scopes, access) can_scopes_access!

Instance methods inherited from module PlaceOS::Api::Utils::CurrentUser

authorize! : PlaceOS::Model::UserJWT authorize!, check_admin check_admin, check_oauth_scope check_oauth_scope, check_support check_support, current_authority : PlaceOS::Model::Authority | Nil current_authority, current_user : PlaceOS::Model::User current_user, user_admin? user_admin?, user_support? user_support?, user_token : PlaceOS::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

Class Method Detail

def self.base_route #

Helper for obtaining base route


def self.connection_manager : ConnectionManager #

[View source]
def self.edge_control(hash_parts : Hash(String | Symbol, Nil | Bool | Int32 | Int64 | Float32 | Float64 | String | Symbol) | Nil = nil, **tuple_parts) #

Helper methods for performing redirect_to calls


Macro Detail

macro generate_scope_check(*scopes) #

Instance Method Detail

def base_route(*args, **options) #

Helper for obtaining base route


def base_route(*args, **options, &) #

Helper for obtaining base route


def create(create_body : PlaceOS::Model::Edge::CreateBody) : PlaceOS::Model::Edge::KeyResponse #

add a new edge location


[View source]
def current_edge : PlaceOS::Model::Edge #

[View source]
def current_edge? : PlaceOS::Model::Edge | Nil #

[View source]
def destroy : Nil #

remove an edge location


[View source]
def edge_control(socket) : Nil #

the websocket endpoint that edge devices use to connect to the cluster


[View source]
def find_current_edge(id : String) #

[View source]
def index : Array(PlaceOS::Model::Edge) #

list the edges in the system. an edge can be thought of as a location and each edge location can have multiple nodes servicing it


[View source]
def show : PlaceOS::Model::Edge #

return the details of an edge location


[View source]
def token : NamedTuple(token: String) #

admins can obtain the token edge nodes will use to connect to the cluster


[View source]
def update(edge : PlaceOS::Model::Edge) : PlaceOS::Model::Edge #

update the details of an edge location


[View source]