41 lines
1.3 KiB
Markdown
41 lines
1.3 KiB
Markdown
|
|
# Kordophone Mock Server (Go)
|
|||
|
|
|
|||
|
|
A lightweight mock of the Kordophone macOS server for local development and tests. It emulates the REST API and updates stream, and seeds itself with sample conversations/messages/attachments.
|
|||
|
|
|
|||
|
|
## Build & Run
|
|||
|
|
|
|||
|
|
Requirements: Go 1.20+
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd mock
|
|||
|
|
go run ./... # quick run
|
|||
|
|
|
|||
|
|
# or build a binary
|
|||
|
|
make # outputs ./kordophone-mock
|
|||
|
|
./kordophone-mock
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Flags:
|
|||
|
|
|
|||
|
|
- `--debug` — enable debug logging
|
|||
|
|
- `--auth` — require authentication (Bearer token via `/authenticate`)
|
|||
|
|
|
|||
|
|
Listens on `http://localhost:5738` by default.
|
|||
|
|
|
|||
|
|
## API Surface (mocked)
|
|||
|
|
|
|||
|
|
- `GET /version` — server version
|
|||
|
|
- `GET /status` — status (requires auth when enabled)
|
|||
|
|
- `GET /conversations` — list conversations
|
|||
|
|
- `GET /messages?guid=...&beforeDate=...&beforeMessageGUID=...&afterMessageGUID=...&limit=...` — list messages
|
|||
|
|
- `POST /authenticate` — exchange username/password for a bearer token (when `--auth`)
|
|||
|
|
- `POST /sendMessage` — send a message
|
|||
|
|
- `POST /markConversation?guid=...` — mark read
|
|||
|
|
- `GET /attachment?guid=...` — download attachment
|
|||
|
|
- `POST /uploadAttachment?filename=...` — upload attachment
|
|||
|
|
- `GET /pollUpdates?seq=...` — long‑poll for updates
|
|||
|
|
- `GET /updates` — WebSocket updates
|
|||
|
|
|
|||
|
|
Note: `/api/*` paths are redirected to the same endpoints for compatibility.
|
|||
|
|
|