API: refactor handlers to be slightly less verbose
This commit is contained in:
@@ -97,15 +97,15 @@ PCB_EDIT_FRAME* API_HANDLER_PCB::frame() const
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<RunActionResponse> API_HANDLER_PCB::handleRunAction( RunAction& aRequest,
|
||||
const HANDLER_CONTEXT& )
|
||||
HANDLER_RESULT<RunActionResponse> API_HANDLER_PCB::handleRunAction(
|
||||
const HANDLER_CONTEXT<RunAction>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
RunActionResponse response;
|
||||
|
||||
if( frame()->GetToolManager()->RunAction( aRequest.action(), true ) )
|
||||
if( frame()->GetToolManager()->RunAction( aCtx.Request.action(), true ) )
|
||||
response.set_status( RunActionStatus::RAS_OK );
|
||||
else
|
||||
response.set_status( RunActionStatus::RAS_INVALID );
|
||||
@@ -115,9 +115,9 @@ HANDLER_RESULT<RunActionResponse> API_HANDLER_PCB::handleRunAction( RunAction& a
|
||||
|
||||
|
||||
HANDLER_RESULT<GetOpenDocumentsResponse> API_HANDLER_PCB::handleGetOpenDocuments(
|
||||
GetOpenDocuments& aMsg, const HANDLER_CONTEXT& )
|
||||
const HANDLER_CONTEXT<GetOpenDocuments>& aCtx )
|
||||
{
|
||||
if( aMsg.type() != DocumentType::DOCTYPE_PCB )
|
||||
if( aCtx.Request.type() != DocumentType::DOCTYPE_PCB )
|
||||
{
|
||||
ApiResponseStatus e;
|
||||
// No message needed for AS_UNHANDLED; this is an internal flag for the API server
|
||||
@@ -141,9 +141,9 @@ HANDLER_RESULT<GetOpenDocumentsResponse> API_HANDLER_PCB::handleGetOpenDocuments
|
||||
}
|
||||
|
||||
|
||||
void API_HANDLER_PCB::pushCurrentCommit( const HANDLER_CONTEXT& aCtx, const wxString& aMessage )
|
||||
void API_HANDLER_PCB::pushCurrentCommit( const std::string& aClientName, const wxString& aMessage )
|
||||
{
|
||||
API_HANDLER_EDITOR::pushCurrentCommit( aCtx, aMessage );
|
||||
API_HANDLER_EDITOR::pushCurrentCommit( aClientName, aMessage );
|
||||
frame()->Refresh();
|
||||
}
|
||||
|
||||
@@ -219,7 +219,7 @@ HANDLER_RESULT<std::unique_ptr<BOARD_ITEM>> API_HANDLER_PCB::createItemForType(
|
||||
|
||||
|
||||
HANDLER_RESULT<ItemRequestStatus> API_HANDLER_PCB::handleCreateUpdateItemsInternal( bool aCreate,
|
||||
const HANDLER_CONTEXT& aCtx,
|
||||
const std::string& aClientName,
|
||||
const types::ItemHeader &aHeader,
|
||||
const google::protobuf::RepeatedPtrField<google::protobuf::Any>& aItems,
|
||||
std::function<void( ItemStatus, google::protobuf::Any )> aItemHandler )
|
||||
@@ -271,7 +271,7 @@ HANDLER_RESULT<ItemRequestStatus> API_HANDLER_PCB::handleCreateUpdateItemsIntern
|
||||
}
|
||||
}
|
||||
|
||||
BOARD_COMMIT* commit = static_cast<BOARD_COMMIT*>( getCurrentCommit( aCtx ) );
|
||||
BOARD_COMMIT* commit = static_cast<BOARD_COMMIT*>( getCurrentCommit( aClientName ) );
|
||||
|
||||
for( const google::protobuf::Any& anyItem : aItems )
|
||||
{
|
||||
@@ -371,10 +371,10 @@ HANDLER_RESULT<ItemRequestStatus> API_HANDLER_PCB::handleCreateUpdateItemsIntern
|
||||
aItemHandler( status, newItem );
|
||||
}
|
||||
|
||||
if( !m_activeClients.count( aCtx.ClientName ) )
|
||||
if( !m_activeClients.count( aClientName ) )
|
||||
{
|
||||
pushCurrentCommit( aCtx, aCreate ? _( "Created items via API" )
|
||||
: _( "Added items via API" ) );
|
||||
pushCurrentCommit( aClientName, aCreate ? _( "Created items via API" )
|
||||
: _( "Added items via API" ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -382,13 +382,13 @@ HANDLER_RESULT<ItemRequestStatus> API_HANDLER_PCB::handleCreateUpdateItemsIntern
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<GetItemsResponse> API_HANDLER_PCB::handleGetItems( GetItems& aMsg,
|
||||
const HANDLER_CONTEXT& )
|
||||
HANDLER_RESULT<GetItemsResponse> API_HANDLER_PCB::handleGetItems(
|
||||
const HANDLER_CONTEXT<GetItems>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
if( !validateItemHeaderDocument( aMsg.header() ) )
|
||||
if( !validateItemHeaderDocument( aCtx.Request.header() ) )
|
||||
{
|
||||
ApiResponseStatus e;
|
||||
// No message needed for AS_UNHANDLED; this is an internal flag for the API server
|
||||
@@ -403,7 +403,7 @@ HANDLER_RESULT<GetItemsResponse> API_HANDLER_PCB::handleGetItems( GetItems& aMsg
|
||||
std::set<KICAD_T> typesRequested, typesInserted;
|
||||
bool handledAnything = false;
|
||||
|
||||
for( int typeRaw : aMsg.types() )
|
||||
for( int typeRaw : aCtx.Request.types() )
|
||||
{
|
||||
auto typeMessage = static_cast<common::types::KiCadObjectType>( typeRaw );
|
||||
KICAD_T type = FromProtoEnum<KICAD_T>( typeMessage );
|
||||
@@ -514,7 +514,7 @@ HANDLER_RESULT<GetItemsResponse> API_HANDLER_PCB::handleGetItems( GetItems& aMsg
|
||||
|
||||
|
||||
void API_HANDLER_PCB::deleteItemsInternal( std::map<KIID, ItemDeletionStatus>& aItemsToDelete,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
const std::string& aClientName )
|
||||
{
|
||||
BOARD* board = frame()->GetBoard();
|
||||
std::vector<BOARD_ITEM*> validatedItems;
|
||||
@@ -531,13 +531,13 @@ void API_HANDLER_PCB::deleteItemsInternal( std::map<KIID, ItemDeletionStatus>& a
|
||||
// to add it in the future (and return IDS_IMMUTABLE)
|
||||
}
|
||||
|
||||
COMMIT* commit = getCurrentCommit( aCtx );
|
||||
COMMIT* commit = getCurrentCommit( aClientName );
|
||||
|
||||
for( BOARD_ITEM* item : validatedItems )
|
||||
commit->Remove( item );
|
||||
|
||||
if( !m_activeClients.count( aCtx.ClientName ) )
|
||||
pushCurrentCommit( aCtx, _( "Deleted items via API" ) );
|
||||
if( !m_activeClients.count( aClientName ) )
|
||||
pushCurrentCommit( aClientName, _( "Deleted items via API" ) );
|
||||
}
|
||||
|
||||
|
||||
@@ -551,13 +551,13 @@ std::optional<EDA_ITEM*> API_HANDLER_PCB::getItemFromDocument( const DocumentSpe
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<BoardStackupResponse> API_HANDLER_PCB::handleGetStackup( GetBoardStackup& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<BoardStackupResponse> API_HANDLER_PCB::handleGetStackup(
|
||||
const HANDLER_CONTEXT<GetBoardStackup>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -574,13 +574,12 @@ HANDLER_RESULT<BoardStackupResponse> API_HANDLER_PCB::handleGetStackup( GetBoard
|
||||
|
||||
|
||||
HANDLER_RESULT<GraphicsDefaultsResponse> API_HANDLER_PCB::handleGetGraphicsDefaults(
|
||||
GetGraphicsDefaults& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<GetGraphicsDefaults>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -617,13 +616,13 @@ HANDLER_RESULT<GraphicsDefaultsResponse> API_HANDLER_PCB::handleGetGraphicsDefau
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<GetBoundingBoxResponse> API_HANDLER_PCB::handleGetBoundingBox( GetBoundingBox& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<GetBoundingBoxResponse> API_HANDLER_PCB::handleGetBoundingBox(
|
||||
const HANDLER_CONTEXT<GetBoundingBox>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
if( !validateItemHeaderDocument( aMsg.header() ) )
|
||||
if( !validateItemHeaderDocument( aCtx.Request.header() ) )
|
||||
{
|
||||
ApiResponseStatus e;
|
||||
// No message needed for AS_UNHANDLED; this is an internal flag for the API server
|
||||
@@ -632,9 +631,9 @@ HANDLER_RESULT<GetBoundingBoxResponse> API_HANDLER_PCB::handleGetBoundingBox( Ge
|
||||
}
|
||||
|
||||
GetBoundingBoxResponse response;
|
||||
bool includeText = aMsg.mode() == BoundingBoxMode::BBM_ITEM_AND_CHILD_TEXT;
|
||||
bool includeText = aCtx.Request.mode() == BoundingBoxMode::BBM_ITEM_AND_CHILD_TEXT;
|
||||
|
||||
for( const types::KIID& idMsg : aMsg.items() )
|
||||
for( const types::KIID& idMsg : aCtx.Request.items() )
|
||||
{
|
||||
KIID id( idMsg.value() );
|
||||
std::optional<BOARD_ITEM*> optItem = getItemById( id );
|
||||
@@ -659,19 +658,18 @@ HANDLER_RESULT<GetBoundingBoxResponse> API_HANDLER_PCB::handleGetBoundingBox( Ge
|
||||
|
||||
|
||||
HANDLER_RESULT<PadShapeAsPolygonResponse> API_HANDLER_PCB::handleGetPadShapeAsPolygon(
|
||||
GetPadShapeAsPolygon& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<GetPadShapeAsPolygon>& aCtx )
|
||||
{
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
|
||||
SHAPE_POLY_SET poly;
|
||||
PadShapeAsPolygonResponse response;
|
||||
PCB_LAYER_ID layer = FromProtoEnum<PCB_LAYER_ID, board::types::BoardLayer>( aMsg.layer() );
|
||||
PCB_LAYER_ID layer = FromProtoEnum<PCB_LAYER_ID, board::types::BoardLayer>( aCtx.Request.layer() );
|
||||
|
||||
for( const types::KIID& padRequest : aMsg.pads() )
|
||||
for( const types::KIID& padRequest : aCtx.Request.pads() )
|
||||
{
|
||||
KIID id( padRequest.value() );
|
||||
std::optional<BOARD_ITEM*> optPad = getItemById( id );
|
||||
@@ -694,10 +692,9 @@ HANDLER_RESULT<PadShapeAsPolygonResponse> API_HANDLER_PCB::handleGetPadShapeAsPo
|
||||
|
||||
|
||||
HANDLER_RESULT<types::TitleBlockInfo> API_HANDLER_PCB::handleGetTitleBlockInfo(
|
||||
GetTitleBlockInfo& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<GetTitleBlockInfo>& aCtx )
|
||||
{
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.document() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.document() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -726,9 +723,9 @@ HANDLER_RESULT<types::TitleBlockInfo> API_HANDLER_PCB::handleGetTitleBlockInfo(
|
||||
|
||||
|
||||
HANDLER_RESULT<ExpandTextVariablesResponse> API_HANDLER_PCB::handleExpandTextVariables(
|
||||
ExpandTextVariables& aMsg, const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<ExpandTextVariables>& aCtx )
|
||||
{
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.document() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.document() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -743,7 +740,7 @@ HANDLER_RESULT<ExpandTextVariablesResponse> API_HANDLER_PCB::handleExpandTextVar
|
||||
return board->ResolveTextVar( token, 0 );
|
||||
};
|
||||
|
||||
for( const std::string& textMsg : aMsg.text() )
|
||||
for( const std::string& textMsg : aCtx.Request.text() )
|
||||
{
|
||||
wxString text = ExpandTextVars( wxString::FromUTF8( textMsg ), &textResolver );
|
||||
reply.add_text( text.ToUTF8() );
|
||||
@@ -753,13 +750,13 @@ HANDLER_RESULT<ExpandTextVariablesResponse> API_HANDLER_PCB::handleExpandTextVar
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleInteractiveMoveItems( InteractiveMoveItems& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleInteractiveMoveItems(
|
||||
const HANDLER_CONTEXT<InteractiveMoveItems>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -767,7 +764,7 @@ HANDLER_RESULT<Empty> API_HANDLER_PCB::handleInteractiveMoveItems( InteractiveMo
|
||||
TOOL_MANAGER* mgr = frame()->GetToolManager();
|
||||
std::vector<EDA_ITEM*> toSelect;
|
||||
|
||||
for( const kiapi::common::types::KIID& id : aMsg.items() )
|
||||
for( const kiapi::common::types::KIID& id : aCtx.Request.items() )
|
||||
{
|
||||
if( std::optional<BOARD_ITEM*> item = getItemById( KIID( id.value() ) ) )
|
||||
toSelect.emplace_back( static_cast<EDA_ITEM*>( *item ) );
|
||||
@@ -778,7 +775,7 @@ HANDLER_RESULT<Empty> API_HANDLER_PCB::handleInteractiveMoveItems( InteractiveMo
|
||||
ApiResponseStatus e;
|
||||
e.set_status( ApiStatusCode::AS_BAD_REQUEST );
|
||||
e.set_error_message( fmt::format( "None of the given items exist on the board",
|
||||
aMsg.board().board_filename() ) );
|
||||
aCtx.Request.board().board_filename() ) );
|
||||
return tl::unexpected( e );
|
||||
}
|
||||
|
||||
@@ -788,20 +785,19 @@ HANDLER_RESULT<Empty> API_HANDLER_PCB::handleInteractiveMoveItems( InteractiveMo
|
||||
mgr->RunAction( PCB_ACTIONS::selectionClear );
|
||||
mgr->RunAction<EDA_ITEMS*>( PCB_ACTIONS::selectItems, &toSelect );
|
||||
|
||||
COMMIT* commit = getCurrentCommit( aCtx );
|
||||
COMMIT* commit = getCurrentCommit( aCtx.ClientName );
|
||||
mgr->PostAction( PCB_ACTIONS::move, commit );
|
||||
|
||||
return Empty();
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<NetsResponse> API_HANDLER_PCB::handleGetNets( GetNets& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<NetsResponse> API_HANDLER_PCB::handleGetNets( const HANDLER_CONTEXT<GetNets>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -811,7 +807,7 @@ HANDLER_RESULT<NetsResponse> API_HANDLER_PCB::handleGetNets( GetNets& aMsg,
|
||||
|
||||
std::set<wxString> netclassFilter;
|
||||
|
||||
for( const std::string& nc : aMsg.netclass_filter() )
|
||||
for( const std::string& nc : aCtx.Request.netclass_filter() )
|
||||
netclassFilter.insert( wxString( nc.c_str(), wxConvUTF8 ) );
|
||||
|
||||
for( NETINFO_ITEM* net : board->GetNetInfo() )
|
||||
@@ -830,18 +826,17 @@ HANDLER_RESULT<NetsResponse> API_HANDLER_PCB::handleGetNets( GetNets& aMsg,
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleRefillZones( RefillZones& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleRefillZones( const HANDLER_CONTEXT<RefillZones>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
|
||||
if( aMsg.zones().empty() )
|
||||
if( aCtx.Request.zones().empty() )
|
||||
{
|
||||
TOOL_MANAGER* mgr = frame()->GetToolManager();
|
||||
frame()->CallAfter( [mgr]()
|
||||
@@ -862,15 +857,15 @@ HANDLER_RESULT<Empty> API_HANDLER_PCB::handleRefillZones( RefillZones& aMsg,
|
||||
|
||||
|
||||
HANDLER_RESULT<SavedDocumentResponse> API_HANDLER_PCB::handleSaveDocumentToString(
|
||||
SaveDocumentToString& aMsg, const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<SaveDocumentToString>& aCtx )
|
||||
{
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.document() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.document() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
|
||||
SavedDocumentResponse response;
|
||||
response.mutable_document()->CopyFrom( aMsg.document() );
|
||||
response.mutable_document()->CopyFrom( aCtx.Request.document() );
|
||||
|
||||
CLIPBOARD_IO io;
|
||||
io.SetWriter(
|
||||
@@ -886,7 +881,7 @@ HANDLER_RESULT<SavedDocumentResponse> API_HANDLER_PCB::handleSaveDocumentToStrin
|
||||
|
||||
|
||||
HANDLER_RESULT<SavedSelectionResponse> API_HANDLER_PCB::handleSaveSelectionToString(
|
||||
SaveSelectionToString& aMsg, const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<SaveSelectionToString>& aCtx )
|
||||
{
|
||||
SavedSelectionResponse response;
|
||||
|
||||
@@ -909,12 +904,12 @@ HANDLER_RESULT<SavedSelectionResponse> API_HANDLER_PCB::handleSaveSelectionToStr
|
||||
|
||||
|
||||
HANDLER_RESULT<CreateItemsResponse> API_HANDLER_PCB::handleParseAndCreateItemsFromString(
|
||||
ParseAndCreateItemsFromString& aMsg, const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<ParseAndCreateItemsFromString>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.document() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.document() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -924,10 +919,10 @@ HANDLER_RESULT<CreateItemsResponse> API_HANDLER_PCB::handleParseAndCreateItemsFr
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<BoardLayers> API_HANDLER_PCB::handleGetVisibleLayers( GetVisibleLayers& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<BoardLayers> API_HANDLER_PCB::handleGetVisibleLayers(
|
||||
const HANDLER_CONTEXT<GetVisibleLayers>& aCtx )
|
||||
{
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -941,13 +936,13 @@ HANDLER_RESULT<BoardLayers> API_HANDLER_PCB::handleGetVisibleLayers( GetVisibleL
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleSetVisibleLayers( SetVisibleLayers& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleSetVisibleLayers(
|
||||
const HANDLER_CONTEXT<SetVisibleLayers>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -955,7 +950,7 @@ HANDLER_RESULT<Empty> API_HANDLER_PCB::handleSetVisibleLayers( SetVisibleLayers&
|
||||
LSET visible;
|
||||
LSET enabled = frame()->GetBoard()->GetEnabledLayers();
|
||||
|
||||
for( int layerIdx : aMsg.layers() )
|
||||
for( int layerIdx : aCtx.Request.layers() )
|
||||
{
|
||||
PCB_LAYER_ID layer =
|
||||
FromProtoEnum<PCB_LAYER_ID>( static_cast<board::types::BoardLayer>( layerIdx ) );
|
||||
@@ -973,9 +968,9 @@ HANDLER_RESULT<Empty> API_HANDLER_PCB::handleSetVisibleLayers( SetVisibleLayers&
|
||||
|
||||
|
||||
HANDLER_RESULT<BoardLayerResponse> API_HANDLER_PCB::handleGetActiveLayer(
|
||||
GetActiveLayer& aMsg, const HANDLER_CONTEXT& aCtx )
|
||||
const HANDLER_CONTEXT<GetActiveLayer>& aCtx )
|
||||
{
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
@@ -988,18 +983,18 @@ HANDLER_RESULT<BoardLayerResponse> API_HANDLER_PCB::handleGetActiveLayer(
|
||||
}
|
||||
|
||||
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleSetActiveLayer( SetActiveLayer& aMsg,
|
||||
const HANDLER_CONTEXT& aCtx )
|
||||
HANDLER_RESULT<Empty> API_HANDLER_PCB::handleSetActiveLayer(
|
||||
const HANDLER_CONTEXT<SetActiveLayer>& aCtx )
|
||||
{
|
||||
if( std::optional<ApiResponseStatus> busy = checkForBusy() )
|
||||
return tl::unexpected( *busy );
|
||||
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aMsg.board() );
|
||||
HANDLER_RESULT<bool> documentValidation = validateDocument( aCtx.Request.board() );
|
||||
|
||||
if( !documentValidation )
|
||||
return tl::unexpected( documentValidation.error() );
|
||||
|
||||
PCB_LAYER_ID layer = FromProtoEnum<PCB_LAYER_ID>( aMsg.layer() );
|
||||
PCB_LAYER_ID layer = FromProtoEnum<PCB_LAYER_ID>( aCtx.Request.layer() );
|
||||
|
||||
if( !frame()->GetBoard()->GetEnabledLayers().Contains( layer ) )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user