feat: add kafka admin integration

This commit is contained in:
richjohnrambo
2026-08-28 00:05:54 +08:00
parent b2e5097708
commit 5cc6eebc1a
48 changed files with 8065 additions and 55 deletions
+43
View File
@@ -0,0 +1,43 @@
package store
import (
adapter "github.com/tinode/chat/server/db"
"github.com/tinode/chat/server/store/types"
)
type InternalAdminQueryPersistenceInterface interface {
Query(types.TenantID, string, string, []any, int, int) (*types.InternalAdminQueryResult, error)
QueryOne(types.TenantID, string, []any) (map[string]any, error)
}
type internalAdminQueryMapper struct{}
var InternalAdminQueries InternalAdminQueryPersistenceInterface = internalAdminQueryMapper{}
func internalAdminQueryAdapter(tenantID types.TenantID) (adapter.TenantInternalAdminQueryAdapter, error) {
business, err := tenantBusinessAdapter(tenantID)
if err != nil {
return nil, err
}
queryAdp, ok := business.(adapter.TenantInternalAdminQueryAdapter)
if !ok {
return nil, types.ErrUnsupported
}
return queryAdp, nil
}
func (internalAdminQueryMapper) Query(tenantID types.TenantID, query string, countQuery string, args []any, page, perPage int) (*types.InternalAdminQueryResult, error) {
queryAdp, err := internalAdminQueryAdapter(tenantID)
if err != nil {
return nil, err
}
return queryAdp.TenantInternalAdminQuery(tenantID, query, countQuery, args, page, perPage)
}
func (internalAdminQueryMapper) QueryOne(tenantID types.TenantID, query string, args []any) (map[string]any, error) {
queryAdp, err := internalAdminQueryAdapter(tenantID)
if err != nil {
return nil, err
}
return queryAdp.TenantInternalAdminQueryOne(tenantID, query, args)
}