feat(public): implement chatwoot public inbox flow

This commit is contained in:
2026-06-04 22:21:52 +08:00
parent a0003c7c06
commit 8dce39f85f
6 changed files with 880 additions and 19 deletions
+15 -15
View File
@@ -248,27 +248,27 @@ func RegisterRoutes(
// Public API compatibility routes used by Chatwoot public inbox/contact flows.
publicInboxes := publicAPI.Group("/inboxes")
{
publicInboxes.GET("/:inbox_id", chatwootParityStub)
publicInboxes.GET("/:inbox_id", handlers.Widget.PublicInboxShow)
contacts := publicInboxes.Group("/:inbox_id/contacts")
{
contacts.POST("", chatwootParityStub)
contacts.GET("/:contact_id", chatwootParityStub)
contacts.PUT("/:contact_id", chatwootParityStub)
contacts.PATCH("/:contact_id", chatwootParityStub)
contacts.POST("", handlers.Widget.PublicCreateContact)
contacts.GET("/:contact_id", handlers.Widget.PublicGetContact)
contacts.PUT("/:contact_id", handlers.Widget.PublicUpdateContact)
contacts.PATCH("/:contact_id", handlers.Widget.PublicUpdateContact)
conversations := contacts.Group("/:contact_id/conversations")
{
conversations.GET("", chatwootParityStub)
conversations.POST("", chatwootParityStub)
conversations.GET("/:conversation_id", chatwootParityStub)
conversations.POST("/:conversation_id/toggle_status", chatwootParityStub)
conversations.POST("/:conversation_id/toggle_typing", chatwootParityStub)
conversations.POST("/:conversation_id/update_last_seen", chatwootParityStub)
conversations.GET("", handlers.Widget.PublicListConversations)
conversations.POST("", handlers.Widget.PublicCreateConversation)
conversations.GET("/:conversation_id", handlers.Widget.PublicGetConversation)
conversations.POST("/:conversation_id/toggle_status", handlers.Widget.PublicToggleStatus)
conversations.POST("/:conversation_id/toggle_typing", handlers.Widget.PublicToggleTyping)
conversations.POST("/:conversation_id/update_last_seen", handlers.Widget.PublicUpdateLastSeen)
messages := conversations.Group("/:conversation_id/messages")
{
messages.GET("", chatwootParityStub)
messages.POST("", chatwootParityStub)
messages.PUT("/:message_id", chatwootParityStub)
messages.PATCH("/:message_id", chatwootParityStub)
messages.GET("", handlers.Widget.PublicListMessages)
messages.POST("", handlers.Widget.PublicCreateMessage)
messages.PUT("/:message_id", handlers.Widget.PublicUpdateMessage)
messages.PATCH("/:message_id", handlers.Widget.PublicUpdateMessage)
}
}
}