Enable auto default sync channels on agent activate, bind-code/phone confirm flows, publish ALTER, and align admin/yuheng docs with the production bind path.
49 lines
1.7 KiB
Go
49 lines
1.7 KiB
Go
package handler
|
||
|
||
import (
|
||
"net/http"
|
||
"strings"
|
||
|
||
"aijianzhan/platform/internal/audit"
|
||
"aijianzhan/platform/internal/authx"
|
||
"aijianzhan/platform/internal/meta"
|
||
"aijianzhan/platform/internal/svc"
|
||
|
||
"github.com/zeromicro/go-zero/rest/httpx"
|
||
)
|
||
|
||
// platformEnsureImportHandler Z9e:超管扫全库已发布模块补齐 import/export。
|
||
// POST /api/v1/platform/apps/ensure-import?dry_run=1
|
||
func platformEnsureImportHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||
return func(w http.ResponseWriter, r *http.Request) {
|
||
dry := r.URL.Query().Get("dry_run") == "1" || strings.EqualFold(r.URL.Query().Get("dry_run"), "true")
|
||
res, err := meta.BackfillDefaultImportExport(r.Context(), svcCtx.Meta, dry)
|
||
if err != nil {
|
||
authx.WriteError(w, http.StatusBadRequest, err.Error())
|
||
return
|
||
}
|
||
if svcCtx.Audit != nil {
|
||
_ = svcCtx.Audit.Log(r.Context(), 0, authx.UserID(r.Context()), "apps.ensure_import", audit.DetailJSON(res))
|
||
}
|
||
httpx.OkJson(w, res)
|
||
}
|
||
}
|
||
|
||
// adminEnsureImportHandler Z9e:租户管理员对本公司已发布模块一键开启导入。
|
||
// POST /api/v1/admin/apps/ensure-import?dry_run=1
|
||
func adminEnsureImportHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
|
||
return func(w http.ResponseWriter, r *http.Request) {
|
||
dry := r.URL.Query().Get("dry_run") == "1" || strings.EqualFold(r.URL.Query().Get("dry_run"), "true")
|
||
tid := authx.TenantID(r.Context())
|
||
res, err := meta.BackfillDefaultImportExportForTenant(r.Context(), svcCtx.Meta, tid, dry)
|
||
if err != nil {
|
||
authx.WriteError(w, http.StatusBadRequest, err.Error())
|
||
return
|
||
}
|
||
if svcCtx.Audit != nil {
|
||
_ = svcCtx.Audit.Log(r.Context(), tid, authx.UserID(r.Context()), "apps.ensure_import", audit.DetailJSON(res))
|
||
}
|
||
httpx.OkJson(w, res)
|
||
}
|
||
}
|