feat(widget): finish chatwoot widget stub burn-down

This commit is contained in:
2026-06-04 22:01:30 +08:00
parent f3b450905f
commit a0003c7c06
7 changed files with 574 additions and 42 deletions
+6 -6
View File
@@ -1699,7 +1699,7 @@ func registerPlatformTokenRoutes(g *gin.RouterGroup, h *Handlers) {
}
// registerChatwootWidgetRoutes maps Chatwoot's /api/v1/widget namespace.
// Some behavior still delegates to tracked stubs until widget serializer parity is completed.
// Widget behavior is backed by Chatwoot-compatible handlers; public inbox APIs are tracked separately.
func registerChatwootWidgetRoutes(g *gin.RouterGroup, h *Handlers) {
g.POST("/direct_uploads", h.Upload.DirectUpload)
g.POST("/config", h.Widget.Config)
@@ -1708,8 +1708,8 @@ func registerChatwootWidgetRoutes(g *gin.RouterGroup, h *Handlers) {
g.GET("/messages", h.Widget.GetLatestMessages)
g.POST("/messages", h.Widget.SendMessage)
g.PUT("/messages/:message_id", chatwootParityStub)
g.PATCH("/messages/:message_id", chatwootParityStub)
g.PUT("/messages/:message_id", h.Widget.UpdateMessage)
g.PATCH("/messages/:message_id", h.Widget.UpdateMessage)
g.GET("/conversations", h.Widget.GetConversations)
g.POST("/conversations", h.Widget.CreateConversation)
@@ -1717,19 +1717,19 @@ func registerChatwootWidgetRoutes(g *gin.RouterGroup, h *Handlers) {
g.POST("/conversations/set_custom_attributes", h.Widget.SetConversationCustomAttributes)
g.POST("/conversations/update_last_seen", h.Widget.UpdateLastSeen)
g.POST("/conversations/toggle_typing", h.Widget.ToggleTyping)
g.POST("/conversations/transcript", chatwootParityStub)
g.POST("/conversations/transcript", h.Widget.SendTranscript)
g.GET("/conversations/toggle_status", h.Widget.ToggleStatus)
g.GET("/contact", h.Widget.GetContact)
g.PUT("/contact", h.Widget.UpdateContact)
g.PATCH("/contact", h.Widget.UpdateContact)
g.POST("/contact/destroy_custom_attributes", h.Widget.DestroyContactCustomAttributes)
g.PATCH("/contact/set_user", chatwootParityStub)
g.PATCH("/contact/set_user", h.Widget.SetUser)
g.GET("/inbox_members", h.Widget.ListInboxMembers)
g.POST("/labels", h.Widget.AddLabel)
g.DELETE("/labels/:label_id", h.Widget.RemoveLabel)
g.POST("/integrations/dyte/add_participant_to_meeting", chatwootParityStub)
g.POST("/integrations/dyte/add_participant_to_meeting", h.Widget.AddDyteParticipantToMeeting)
}
// registerWidgetRoutes maps widget API routes (public, for embed).