refactor: unify all C2S commands through POST /messages
All client-to-server commands now go through POST /api/v1/messages
with a 'command' field. The server dispatches by command type:
- PRIVMSG/NOTICE: send message to channel or user
- JOIN: join channel (creates if needed)
- PART: leave channel
- NICK: change nickname
- TOPIC: set channel topic
- PING: keepalive (returns PONG)
Removed separate routes:
- POST /channels/join
- DELETE /channels/{channel}
- POST /register (renamed to POST /session)
- GET /channels/all (moved to GET /channels)
Added DB methods: ChangeNick, SetTopic
This commit is contained in:
@@ -52,18 +52,16 @@ func (s *Server) SetupRoutes() {
|
||||
// API v1
|
||||
s.router.Route("/api/v1", func(r chi.Router) {
|
||||
r.Get("/server", s.h.HandleServerInfo())
|
||||
r.Post("/register", s.h.HandleRegister())
|
||||
r.Post("/session", s.h.HandleCreateSession())
|
||||
|
||||
// Unified state and message endpoints
|
||||
r.Get("/state", s.h.HandleState())
|
||||
r.Get("/messages", s.h.HandleGetMessages())
|
||||
r.Post("/messages", s.h.HandleSendMessage())
|
||||
r.Post("/messages", s.h.HandleSendCommand())
|
||||
r.Get("/history", s.h.HandleGetHistory())
|
||||
|
||||
// Channels
|
||||
r.Get("/channels/all", s.h.HandleListAllChannels())
|
||||
r.Post("/channels/join", s.h.HandleJoinChannel())
|
||||
r.Delete("/channels/{channel}", s.h.HandlePartChannel())
|
||||
r.Get("/channels", s.h.HandleListAllChannels())
|
||||
r.Get("/channels/{channel}/members", s.h.HandleChannelMembers())
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user