diff --git a/docs b/docs index 2c06261..7e7bb92 160000 --- a/docs +++ b/docs @@ -1 +1 @@ -Subproject commit 2c062610c432b096b2ae984fda45923ca7de04ce +Subproject commit 7e7bb92e1dd765b340d134555664afebee622dd2 diff --git a/internal/bootstrap/server.go b/internal/bootstrap/server.go index a4fbe56..fb84fd1 100644 --- a/internal/bootstrap/server.go +++ b/internal/bootstrap/server.go @@ -96,10 +96,10 @@ func addRouter(app *iris.Application) { mvc.Configure(app.Party("/api"), func(m *mvc.Application) { m.Party("/auth").Handle(new(api.AuthController)) + m.Party("/channel").Handle(new(api.ChannelController)) - m.Party("/channel", middleware.ChannelContextMiddleware).Handle(new(api.ChannelController)) - m.Party("/conversation", middleware.ChannelContextMiddleware).Handle(new(api.ConversationController)) - m.Party("/message", middleware.ChannelContextMiddleware).Handle(new(api.MessageController)) + m.Party("/conversation", middleware.ExternalInfoMiddleware).Handle(new(api.ConversationController)) + m.Party("/message", middleware.ExternalInfoMiddleware).Handle(new(api.MessageController)) }) // mvc.Configure(app.Party("/api/open/im", middleware.ChannelContextMiddleware), func(m *mvc.Application) { diff --git a/internal/middleware/open_im_middleware.go b/internal/middleware/chat_middleware.go similarity index 64% rename from internal/middleware/open_im_middleware.go rename to internal/middleware/chat_middleware.go index 832ee1a..eaaa809 100644 --- a/internal/middleware/open_im_middleware.go +++ b/internal/middleware/chat_middleware.go @@ -8,14 +8,13 @@ import ( "github.com/mlogclub/simple/web" ) -// ChannelContextMiddleware 校验 X-Channel-Id / channelId 对应启用 web 渠道 -func ChannelContextMiddleware(ctx iris.Context) { +func ExternalInfoMiddleware(ctx iris.Context) { ext, err := openidentity.GetExternalInfo(ctx) if err != nil { ctx.StopExecution() _ = ctx.JSON(web.JsonError(err)) return } - irisx.SetOpenImExternalInfo(ctx, ext) + irisx.SetExternalInfo(ctx, ext) ctx.Next() } diff --git a/internal/pkg/irisx/context.go b/internal/pkg/irisx/context.go index ee1d5a2..536fcf2 100644 --- a/internal/pkg/irisx/context.go +++ b/internal/pkg/irisx/context.go @@ -9,28 +9,15 @@ import ( ) const ( - ctxKeyOpenImChannel = "openImChannel" - ctxKeyOpenImExternalInfo = "openImExternalInfo" + ctxKeyExternalInfo = "externalInfo" ) -// func SetOpenImChannel(ctx iris.Context, channel *models.Channel) { -// ctx.Values().Set(ctxKeyOpenImChannel, channel) -// } - -// // GetChannel 返回 OpenImContextMiddleware 注入的接入渠道(未走中间件时为 nil)。 -// func GetChannel(ctx iris.Context) *models.Channel { -// v := ctx.Values().Get(ctxKeyOpenImChannel) -// channel, _ := v.(*models.Channel) -// return channel -// } - -func SetOpenImExternalInfo(ctx iris.Context, ext *openidentity.ExternalInfo) { - ctx.Values().Set(ctxKeyOpenImExternalInfo, ext) +func SetExternalInfo(ctx iris.Context, ext *openidentity.ExternalInfo) { + ctx.Values().Set(ctxKeyExternalInfo, ext) } -// GetExternalInfo 返回中间件注入的外部访客身份;仅 widget 子路径或未启用中间件时为 nil。 func GetExternalInfo(ctx iris.Context) *openidentity.ExternalInfo { - v := ctx.Values().Get(ctxKeyOpenImExternalInfo) + v := ctx.Values().Get(ctxKeyExternalInfo) ext, _ := v.(*openidentity.ExternalInfo) return ext }