mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-07-22 12:39:30 +00:00
* WIP logosdeliverynode app initial commit * WIP - extra cli option * WIP: messaging client REST endpoints * Add event poll for messaging rest with cache mechanism * Messaging rest tests * test: assert 404 via raw string client in messaging REST test presto's typed REST client raises RestDecodingError when it cannot decode a non-2xx text error body into the response type. Add a RestResponse[string] stub (messagingGetSendEventsByIdRawV1) and point the "already-polled id -> 404" assertion at it, matching the relay REST test pattern. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * remove customized cli args as confutils has no support for it * Introduce --entry-layer and re-introduce --mode flags into cli args, applied new driver into LogosDelivery + tests * Add messaging REST client test * Add docker image build of logosdeliverynode for CI builds * Fix tests * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Refactor Messaging REST API to better match Messaging Send and Receive APIs * chore: migrate messaging REST API to Opt[T] Follow-up to the rebase onto master's repo-wide Option[T] -> Opt[T] change (#4035). Converts the code this branch adds to the new convention: - messaging/rest_api/types.nim: MessagingJsonEnvelope fields to Opt[T], Opt.some/Opt.none, and json_serialization/pkg/results instead of json_serialization/std/options. - tests: WakuNodeConf.clusterId is now Opt[uint16]; DTO fields are Opt. `Option[ContentBody]` in the handlers is presto's own API and stays as-is. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
19 lines
873 B
Nim
19 lines
873 B
Nim
## Leaf module for the app-level mode / entry-layer enums.
|
|
##
|
|
## These appear on `WakuNodeConf` (in the leaf `tools/confutils/cli_args`), so
|
|
## they must live in a module that `cli_args` can import without a cycle — i.e.
|
|
## a module that imports nothing from the config/api layers. `logos_delivery_conf`
|
|
## re-exports them so consumers still get them from there.
|
|
|
|
type LogosDeliveryMode* {.pure.} = enum
|
|
## Drives the kernel-internal protocol mountings. Applied only for the
|
|
## `messaging` / `channels` entry layers; ignored when `entryLayer == kernel`.
|
|
Edge # client-only node
|
|
Core # full service node
|
|
|
|
type EntryLayer* {.pure.} = enum
|
|
## Selects which API layer `LogosDelivery` instantiates.
|
|
kernel # transport kernel only; ignores `mode` and uses the config as-is
|
|
messaging # kernel + messaging client
|
|
channels # kernel + messaging + reliable channels
|