refactor: Moved external APIs out of node (#2069)

This commit is contained in:
Simon-Pierre Vivier 2023-09-22 09:36:46 -04:00 committed by GitHub
parent 971b59c44a
commit 091cb5d899
71 changed files with 121 additions and 115 deletions

View File

@ -217,11 +217,11 @@ proc stop*(cmb: Chat2MatterBridge) {.async.} =
when isMainModule: when isMainModule:
import import
../../../waku/common/utils/nat, ../../../waku/common/utils/nat,
../../waku/node/message_cache, ../../waku/waku_api/message_cache,
../../waku/node/jsonrpc/debug/handlers as debug_api, ../../waku/waku_api/jsonrpc/debug/handlers as debug_api,
../../waku/node/jsonrpc/filter/handlers as filter_api, ../../waku/waku_api/jsonrpc/filter/handlers as filter_api,
../../waku/node/jsonrpc/relay/handlers as relay_api, ../../waku/waku_api/jsonrpc/relay/handlers as relay_api,
../../waku/node/jsonrpc/store/handlers as store_api ../../waku/waku_api/jsonrpc/store/handlers as store_api
proc startV2Rpc(node: WakuNode, rpcServer: RpcHttpServer, conf: Chat2MatterbridgeConf) {.raises: [Exception].} = proc startV2Rpc(node: WakuNode, rpcServer: RpcHttpServer, conf: Chat2MatterbridgeConf) {.raises: [Exception].} =

View File

@ -38,26 +38,25 @@ import
../../waku/waku_lightpush, ../../waku/waku_lightpush,
../../waku/waku_filter, ../../waku/waku_filter,
../../waku/waku_filter_v2, ../../waku/waku_filter_v2,
../../waku/waku_filter_v2/client as waku_filter_client,
./wakunode2_validator_signed, ./wakunode2_validator_signed,
./internal_config, ./internal_config,
./external_config ./external_config
import import
../../waku/node/message_cache, ../../waku/waku_api/message_cache,
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/debug/handlers as rest_debug_api, ../../waku/waku_api/rest/debug/handlers as rest_debug_api,
../../waku/node/rest/relay/handlers as rest_relay_api, ../../waku/waku_api/rest/relay/handlers as rest_relay_api,
../../waku/node/rest/relay/topic_cache, ../../waku/waku_api/rest/relay/topic_cache,
../../waku/node/rest/filter/legacy_handlers as rest_legacy_filter_api, ../../waku/waku_api/rest/filter/legacy_handlers as rest_legacy_filter_api,
../../waku/node/rest/filter/handlers as rest_filter_api, ../../waku/waku_api/rest/filter/handlers as rest_filter_api,
../../waku/node/rest/store/handlers as rest_store_api, ../../waku/waku_api/rest/lightpush/handlers as rest_lightpush_api,
../../waku/node/rest/health/handlers as rest_health_api, ../../waku/waku_api/rest/store/handlers as rest_store_api,
../../waku/node/rest/lightpush/handlers as rest_lightpush_api, ../../waku/waku_api/rest/health/handlers as rest_health_api,
../../waku/node/jsonrpc/admin/handlers as rpc_admin_api, ../../waku/waku_api/jsonrpc/admin/handlers as rpc_admin_api,
../../waku/node/jsonrpc/debug/handlers as rpc_debug_api, ../../waku/waku_api/jsonrpc/debug/handlers as rpc_debug_api,
../../waku/node/jsonrpc/filter/handlers as rpc_filter_api, ../../waku/waku_api/jsonrpc/filter/handlers as rpc_filter_api,
../../waku/node/jsonrpc/relay/handlers as rpc_relay_api, ../../waku/waku_api/jsonrpc/relay/handlers as rpc_relay_api,
../../waku/node/jsonrpc/store/handlers as rpc_store_api ../../waku/waku_api/jsonrpc/store/handlers as rpc_store_api
logScope: logScope:
topics = "wakunode app" topics = "wakunode app"
@ -591,7 +590,8 @@ proc startRestServer(app: App, address: ValidIpAddress, port: Port, conf: WakuNo
## Store REST API ## Store REST API
installStoreApiHandlers(server.router, app.node) installStoreApiHandlers(server.router, app.node)
installLightPushRequestHandler(server.router, app.node) ## Light push API
rest_lightpush_api.installLightPushRequestHandler(server.router, app.node)
server.start() server.start()
info "Starting REST HTTP server", url = "http://" & $address & ":" & $port & "/" info "Starting REST HTTP server", url = "http://" & $address & ":" & $port & "/"

View File

@ -6,7 +6,7 @@ import
chronicles chronicles
import import
../../waku/waku_core, ../../waku/waku_core,
../../waku/node/message_cache, ../../waku/waku_api/message_cache,
./testlib/common, ./testlib/common,
./testlib/wakucore ./testlib/wakucore

View File

@ -13,8 +13,8 @@ import
../../../waku/waku_core, ../../../waku/waku_core,
../../../waku/node/peer_manager, ../../../waku/node/peer_manager,
../../../waku/waku_node, ../../../waku/waku_node,
../../../waku/node/jsonrpc/admin/handlers as admin_api, ../../../waku/waku_api/jsonrpc/admin/handlers as admin_api,
../../../waku/node/jsonrpc/admin/client as admin_api_client, ../../../waku/waku_api/jsonrpc/admin/client as admin_api_client,
../../../waku/waku_relay, ../../../waku/waku_relay,
../../../waku/waku_archive, ../../../waku/waku_archive,
../../../waku/waku_archive/driver/queue_driver, ../../../waku/waku_archive/driver/queue_driver,

View File

@ -11,8 +11,8 @@ import
import import
../../../waku/node/peer_manager, ../../../waku/node/peer_manager,
../../../waku/waku_node, ../../../waku/waku_node,
../../../waku/node/jsonrpc/debug/handlers as debug_api, ../../../waku/waku_api/jsonrpc/debug/handlers as debug_api,
../../../waku/node/jsonrpc/debug/client as debug_api_client, ../../../waku/waku_api/jsonrpc/debug/client as debug_api_client,
../testlib/common, ../testlib/common,
../testlib/wakucore, ../testlib/wakucore,
../testlib/wakunode ../testlib/wakunode

View File

@ -11,9 +11,9 @@ import
../../../waku/waku_core, ../../../waku/waku_core,
../../../waku/node/peer_manager, ../../../waku/node/peer_manager,
../../../waku/waku_node, ../../../waku/waku_node,
../../../waku/node/message_cache, ../../../waku/waku_api/message_cache,
../../../waku/node/jsonrpc/filter/handlers as filter_api, ../../../waku/waku_api/jsonrpc/filter/handlers as filter_api,
../../../waku/node/jsonrpc/filter/client as filter_api_client, ../../../waku/waku_api/jsonrpc/filter/client as filter_api_client,
../../../waku/waku_filter, ../../../waku/waku_filter,
../../../waku/waku_filter/rpc, ../../../waku/waku_filter/rpc,
../../../waku/waku_filter/client, ../../../waku/waku_filter/client,

View File

@ -11,10 +11,10 @@ import
../../../waku/common/base64, ../../../waku/common/base64,
../../../waku/waku_core, ../../../waku/waku_core,
../../../waku/node/peer_manager, ../../../waku/node/peer_manager,
../../../waku/node/message_cache, ../../../waku/waku_api/message_cache,
../../../waku/waku_node, ../../../waku/waku_node,
../../../waku/node/jsonrpc/relay/handlers as relay_api, ../../../waku/waku_api/jsonrpc/relay/handlers as relay_api,
../../../waku/node/jsonrpc/relay/client as relay_api_client, ../../../waku/waku_api/jsonrpc/relay/client as relay_api_client,
../../../waku/waku_core, ../../../waku/waku_core,
../../../waku/waku_relay, ../../../waku/waku_relay,
../../../waku/waku_rln_relay, ../../../waku/waku_rln_relay,

View File

@ -11,8 +11,8 @@ import
../../../waku/waku_core, ../../../waku/waku_core,
../../../waku/node/peer_manager, ../../../waku/node/peer_manager,
../../../waku/waku_node, ../../../waku/waku_node,
../../../waku/node/jsonrpc/store/handlers as store_api, ../../../waku/waku_api/jsonrpc/store/handlers as store_api,
../../../waku/node/jsonrpc/store/client as store_api_client, ../../../waku/waku_api/jsonrpc/store/client as store_api_client,
../../../waku/waku_archive, ../../../waku/waku_archive,
../../../waku/waku_archive/driver/queue_driver, ../../../waku/waku_archive/driver/queue_driver,
../../../waku/waku_store, ../../../waku/waku_store,

View File

@ -11,11 +11,11 @@ import
import import
../../waku/waku_node, ../../waku/waku_node,
../../waku/node/waku_node as waku_node2, # TODO: Remove after moving `git_version` to the app code. ../../waku/node/waku_node as waku_node2, # TODO: Remove after moving `git_version` to the app code.
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/client, ../../waku/waku_api/rest/client,
../../waku/node/rest/responses, ../../waku/waku_api/rest/responses,
../../waku/node/rest/debug/handlers as debug_api, ../../waku/waku_api/rest/debug/handlers as debug_api,
../../waku/node/rest/debug/client as debug_api_client, ../../waku/waku_api/rest/debug/client as debug_api_client,
../testlib/common, ../testlib/common,
../testlib/wakucore, ../testlib/wakucore,
../testlib/wakunode ../testlib/wakunode

View File

@ -6,8 +6,8 @@ import
testutils/unittests, testutils/unittests,
json_serialization json_serialization
import import
../../waku/node/rest/serdes, ../../waku/waku_api/rest/serdes,
../../waku/node/rest/debug/types ../../waku/waku_api/rest/debug/types
suite "Waku v2 REST API - Debug - serialization": suite "Waku v2 REST API - Debug - serialization":

View File

@ -8,24 +8,24 @@ import
presto, presto/client as presto_client, presto, presto/client as presto_client,
libp2p/crypto/crypto libp2p/crypto/crypto
import import
../../waku/node/message_cache, ../../waku/waku_api/message_cache,
../../waku/common/base64, ../../waku/common/base64,
../../waku/waku_core, ../../waku/waku_core,
../../waku/waku_node, ../../waku/waku_node,
../../waku/node/peer_manager, ../../waku/node/peer_manager,
../../waku/waku_filter, ../../waku/waku_filter,
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/client, ../../waku/waku_api/rest/client,
../../waku/node/rest/responses, ../../waku/waku_api/rest/responses,
../../waku/node/rest/filter/types, ../../waku/waku_api/rest/filter/types,
../../waku/node/rest/filter/handlers as filter_api, ../../waku/waku_api/rest/filter/handlers as filter_api,
../../waku/node/rest/filter/client as filter_api_client, ../../waku/waku_api/rest/filter/client as filter_api_client,
../../waku/waku_relay, ../../waku/waku_relay,
../../waku/waku_filter_v2/subscriptions, ../../waku/waku_filter_v2/subscriptions,
../../waku/waku_filter_v2/common, ../../waku/waku_filter_v2/common,
../../waku/node/rest/relay/topic_cache, ../../waku/waku_api/rest/relay/topic_cache,
../../waku/node/rest/relay/handlers as relay_api, ../../waku/waku_api/rest/relay/handlers as relay_api,
../../waku/node/rest/relay/client as relay_api_client, ../../waku/waku_api/rest/relay/client as relay_api_client,
../testlib/wakucore, ../testlib/wakucore,
../testlib/wakunode ../testlib/wakunode

View File

@ -12,11 +12,11 @@ import
import import
../../waku/waku_node, ../../waku/waku_node,
../../waku/node/waku_node as waku_node2, # TODO: Remove after moving `git_version` to the app code. ../../waku/node/waku_node as waku_node2, # TODO: Remove after moving `git_version` to the app code.
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/client, ../../waku/waku_api/rest/client,
../../waku/node/rest/responses, ../../waku/waku_api/rest/responses,
../../waku/node/rest/health/handlers as health_api, ../../waku/waku_api/rest/health/handlers as health_api,
../../waku/node/rest/health/client as health_api_client, ../../waku/waku_api/rest/health/client as health_api_client,
../../waku/waku_rln_relay, ../../waku/waku_rln_relay,
../testlib/common, ../testlib/common,
../testlib/testutils, ../testlib/testutils,

View File

@ -8,18 +8,18 @@ import
presto, presto/client as presto_client, presto, presto/client as presto_client,
libp2p/crypto/crypto libp2p/crypto/crypto
import import
../../waku/node/message_cache, ../../waku/waku_api/message_cache,
../../waku/common/base64, ../../waku/common/base64,
../../waku/waku_core, ../../waku/waku_core,
../../waku/waku_node, ../../waku/waku_node,
../../waku/node/peer_manager, ../../waku/node/peer_manager,
../../waku/waku_filter, ../../waku/waku_filter,
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/client, ../../waku/waku_api/rest/client,
../../waku/node/rest/responses, ../../waku/waku_api/rest/responses,
../../waku/node/rest/filter/types, ../../waku/waku_api/rest/filter/types,
../../waku/node/rest/filter/legacy_handlers as filter_api, ../../waku/waku_api/rest/filter/legacy_handlers as filter_api,
../../waku/node/rest/filter/legacy_client as filter_api_client, ../../waku/waku_api/rest/filter/legacy_client as filter_api_client,
../../waku/waku_relay, ../../waku/waku_relay,
../testlib/wakucore, ../testlib/wakucore,
../testlib/wakunode ../testlib/wakunode

View File

@ -9,18 +9,18 @@ import
libp2p/crypto/crypto libp2p/crypto/crypto
import import
../../waku/node/message_cache, ../../waku/waku_api/message_cache,
../../waku/common/base64, ../../waku/common/base64,
../../waku/waku_core, ../../waku/waku_core,
../../waku/waku_node, ../../waku/waku_node,
../../waku/node/peer_manager, ../../waku/node/peer_manager,
../../waku/waku_lightpush, ../../waku/waku_lightpush,
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/client, ../../waku/waku_api/rest/client,
../../waku/node/rest/responses, ../../waku/waku_api/rest/responses,
../../waku/node/rest/lightpush/types, ../../waku/waku_api/rest/lightpush/types,
../../waku/node/rest/lightpush/handlers as lightpush_api, ../../waku/waku_api/rest/lightpush/handlers as lightpush_api,
../../waku/node/rest/lightpush/client as lightpush_api_client, ../../waku/waku_api/rest/lightpush/client as lightpush_api_client,
../../waku/waku_relay, ../../waku/waku_relay,
../testlib/wakucore, ../testlib/wakucore,
../testlib/wakunode ../testlib/wakunode

View File

@ -11,13 +11,13 @@ import
../../waku/common/base64, ../../waku/common/base64,
../../waku/waku_core, ../../waku/waku_core,
../../waku/waku_node, ../../waku/waku_node,
../../waku/node/rest/server, ../../waku/waku_api/rest/server,
../../waku/node/rest/client, ../../waku/waku_api/rest/client,
../../waku/node/rest/responses, ../../waku/waku_api/rest/responses,
../../waku/node/rest/relay/types, ../../waku/waku_api/rest/relay/types,
../../waku/node/rest/relay/handlers as relay_api, ../../waku/waku_api/rest/relay/handlers as relay_api,
../../waku/node/rest/relay/client as relay_api_client, ../../waku/waku_api/rest/relay/client as relay_api_client,
../../waku/node/rest/relay/topic_cache, ../../waku/waku_api/rest/relay/topic_cache,
../../waku/waku_relay, ../../waku/waku_relay,
../../../waku/waku_rln_relay, ../../../waku/waku_rln_relay,
../testlib/wakucore, ../testlib/wakucore,

View File

@ -7,8 +7,8 @@ import
json_serialization json_serialization
import import
../../waku/common/base64, ../../waku/common/base64,
../../waku/node/rest/serdes, ../../waku/waku_api/rest/serdes,
../../waku/node/rest/relay/types, ../../waku/waku_api/rest/relay/types,
../../waku/waku_core ../../waku/waku_core

View File

@ -6,8 +6,8 @@ import
unittest2, unittest2,
json_serialization json_serialization
import import
../../waku/node/rest/serdes, ../../waku/waku_api/rest/serdes,
../../waku/node/rest/debug/types ../../waku/waku_api/rest/debug/types
# TODO: Decouple this test suite from the `debug_api` module by defining # TODO: Decouple this test suite from the `debug_api` module by defining

View File

@ -14,12 +14,12 @@ import
../../../waku/waku_core/time, ../../../waku/waku_core/time,
../../../waku/waku_node, ../../../waku/waku_node,
../../../waku/node/peer_manager, ../../../waku/node/peer_manager,
../../../waku/node/rest/server, ../../../waku/waku_api/rest/server,
../../../waku/node/rest/client, ../../../waku/waku_api/rest/client,
../../../waku/node/rest/responses, ../../../waku/waku_api/rest/responses,
../../../waku/node/rest/store/handlers as store_api, ../../../waku/waku_api/rest/store/handlers as store_api,
../../../waku/node/rest/store/client as store_api_client, ../../../waku/waku_api/rest/store/client as store_api_client,
../../../waku/node/rest/store/types, ../../../waku/waku_api/rest/store/types,
../../../waku/waku_archive, ../../../waku/waku_archive,
../../../waku/waku_archive/driver/queue_driver, ../../../waku/waku_archive/driver/queue_driver,
../../../waku/waku_store as waku_store, ../../../waku/waku_store as waku_store,

View File

@ -20,7 +20,6 @@ import
libp2p/protocols/connectivity/autonat/client, libp2p/protocols/connectivity/autonat/client,
libp2p/protocols/connectivity/autonat/service, libp2p/protocols/connectivity/autonat/service,
libp2p/protocols/rendezvous, libp2p/protocols/rendezvous,
libp2p/nameresolving/nameresolver,
libp2p/builders, libp2p/builders,
libp2p/transports/tcptransport, libp2p/transports/tcptransport,
libp2p/transports/wstransport libp2p/transports/wstransport
@ -41,9 +40,7 @@ import
../waku_peer_exchange, ../waku_peer_exchange,
../waku_rln_relay, ../waku_rln_relay,
./config, ./config,
./peer_manager, ./peer_manager
./waku_switch,
./rest/relay/topic_cache
declarePublicCounter waku_node_messages, "number of messages received", ["type"] declarePublicCounter waku_node_messages, "number of messages received", ["type"]

9
waku/waku_api.nim Normal file
View File

@ -0,0 +1,9 @@
import
./waku_api/message_cache,
./waku_api/rest,
./waku_api/json_rpc
export
message_cache,
rest,
jsonrpc

View File

@ -12,8 +12,8 @@ import
../../../waku_store, ../../../waku_store,
../../../waku_filter, ../../../waku_filter,
../../../waku_relay, ../../../waku_relay,
../../peer_manager, ../../../waku_node,
../../waku_node, ../../../node/peer_manager,
./types ./types

View File

@ -7,7 +7,7 @@ import
std/[os, strutils], std/[os, strutils],
json_rpc/rpcclient json_rpc/rpcclient
import import
../../waku_node ../../../waku_node
template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0] template sourceDir: string = currentSourcePath.rsplit(DirSep, 1)[0]

View File

@ -7,7 +7,7 @@ import
chronicles, chronicles,
json_rpc/rpcserver json_rpc/rpcserver
import import
../../waku_node ../../../waku_node
logScope: logScope:
topics = "waku node jsonrpc debug_api" topics = "waku node jsonrpc debug_api"

View File

@ -12,9 +12,10 @@ import
../../../waku_filter, ../../../waku_filter,
../../../waku_filter/rpc, ../../../waku_filter/rpc,
../../../waku_filter/client, ../../../waku_filter/client,
../../message_cache, ../../../waku_node,
../../peer_manager, ../../../node/peer_manager,
../../waku_node ../../message_cache
logScope: logScope:

View File

@ -15,7 +15,7 @@ import
../../../waku_relay, ../../../waku_relay,
../../../waku_rln_relay, ../../../waku_rln_relay,
../../../waku_rln_relay/rln/wrappers, ../../../waku_rln_relay/rln/wrappers,
../../waku_node, ../../../waku_node,
../../message_cache, ../../message_cache,
../message ../message

View File

@ -11,8 +11,8 @@ import
../../../waku_core, ../../../waku_core,
../../../waku_store, ../../../waku_store,
../../../waku_store/rpc, ../../../waku_store/rpc,
../../waku_node, ../../../waku_node,
../../peer_manager, ../../../node/peer_manager,
./types ./types

View File

@ -8,7 +8,7 @@ import
json_serialization, json_serialization,
presto/route presto/route
import import
../../waku_node, ../../../waku_node,
../responses, ../responses,
../serdes, ../serdes,
./types ./types

View File

@ -8,7 +8,7 @@ import
json_serialization, json_serialization,
json_serialization/std/options json_serialization/std/options
import import
../../waku_node, ../../../waku_node,
../serdes ../serdes
#### Types #### Types

View File

@ -14,13 +14,13 @@ import
presto/common presto/common
import import
../../../waku_core, ../../../waku_core,
../../../waku_node,
../../../node/peer_manager,
../../../waku_filter, ../../../waku_filter,
../../../waku_filter_v2, ../../../waku_filter_v2,
../../../waku_filter_v2/client as filter_protocol_client, ../../../waku_filter_v2/client as filter_protocol_client,
../../../waku_filter_v2/common as filter_protocol_type, ../../../waku_filter_v2/common as filter_protocol_type,
../../message_cache, ../../message_cache,
../../peer_manager,
../../waku_node,
../serdes, ../serdes,
../responses, ../responses,
./types ./types

View File

@ -15,9 +15,9 @@ import
../../../waku_core, ../../../waku_core,
../../../waku_filter, ../../../waku_filter,
../../../waku_filter/client, ../../../waku_filter/client,
../../../node/peer_manager,
../../../waku_node,
../../message_cache, ../../message_cache,
../../peer_manager,
../../waku_node,
../serdes, ../serdes,
../responses, ../responses,
./types ./types

View File

@ -8,7 +8,7 @@ import
json_serialization, json_serialization,
presto/route presto/route
import import
../../waku_node, ../../../waku_node,
../responses, ../responses,
../serdes ../serdes

View File

@ -15,8 +15,8 @@ import
import import
../../../waku_core, ../../../waku_core,
../../peer_manager, ../../waku/node/peer_manager,
../../waku_node, ../../../waku_node,
../../waku/waku_lightpush, ../../waku/waku_lightpush,
../serdes, ../serdes,
../responses, ../responses,

View File

@ -12,7 +12,7 @@ import
presto/route, presto/route,
presto/common presto/common
import import
../../waku_node, ../../../waku_node,
../../../waku_relay/protocol, ../../../waku_relay/protocol,
../../../waku_rln_relay, ../../../waku_rln_relay,
../../../waku_rln_relay/rln/wrappers, ../../../waku_rln_relay/rln/wrappers,

View File

@ -11,11 +11,10 @@ import
json_serialization, json_serialization,
presto/route presto/route
import import
../../../common/base64,
../../../waku_core, ../../../waku_core,
../../../waku_store/common, ../../../waku_store/common,
../../waku_node, ../../../waku_node,
../../peer_manager, ../../../node/peer_manager,
../responses, ../responses,
../serdes, ../serdes,
./types ./types