api-router.go
8.23 KB
-
✨ feat: implement backend channel duplication & streamline frontend copy flow · 3338b1f5Add a dedicated backend endpoint to clone an existing channel (including its key) and replace all previous front-end cloning logic with a single API call. Backend • controller/channel.go – add CopyChannel: safely clone a channel, reset balance/usage, append name suffix, preserve key, create abilities, return new ID. – supports optional query params: `suffix`, `reset_balance`. • router/api-router.go – register POST /api/channel/copy/:id (secured by AdminAuth). • model interaction uses BatchInsertChannels to ensure transactional integrity. Frontend • ChannelsTable.js – simplify copySelectedChannel: call /api/channel/copy/{id} and refresh list. – remove complex field-manipulation & key-fetching logic. – improved error handling. Security & stability • All cloning done server-side; sensitive key never exposed to client. • Route inherits existing admin middleware. • Graceful JSON responses with detailed error messages.t0ng7u committed