Files
SunPeiYang996 9a29abeac0 fix(docs): resolve draft resources and validate explicit constraints (#2675)
* fix(docs): resolve draft resources and validate explicit constraints

* test(docs): assert validation metadata and preserved causes
2026-09-09 19:08:56 +08:00

62 lines
1.7 KiB
Go

// Copyright (c) 2026 Lark Technologies Pte. Ltd.
// SPDX-License-Identifier: MIT
package doc
import (
"context"
"github.com/larksuite/cli/shortcuts/common"
)
// v1UpdateFlags returns hidden parse-only compatibility flags for old v1 commands.
func v1UpdateFlags() []common.Flag {
return docsLegacyFlagDefinitions(docsUpdateLegacyFlags())
}
var docsUpdateLocalResourceScopes = []string{
"docs:document.media:upload",
}
var docsUpdateWikiLocalResourceScopes = []string{
"docs:document.media:upload",
"wiki:node:retrieve",
}
func docsUpdateLocalResourceScopesFor(ref documentRef) []string {
if ref.Kind == "wiki" {
return docsUpdateWikiLocalResourceScopes
}
return docsUpdateLocalResourceScopes
}
var DocsUpdate = common.Shortcut{
Service: "docs",
Command: "+update",
Description: "Update a Lark document",
Risk: "write",
Scopes: []string{"docx:document:write_only", "docx:document:readonly"},
ConditionalScopes: docsUpdateWikiLocalResourceScopes,
AuthTypes: []string{"user", "bot"},
PostMount: installDocsContentPathCapture,
Flags: concatFlags(
[]common.Flag{
docsAPIVersionCompatFlag(),
docsOutputFormatCompatFlag(),
docsJSONOutputCompatFlag(),
{Name: "doc", Desc: "document URL or token", Required: true},
},
v2UpdateFlags(),
v1UpdateFlags(),
),
Validate: func(ctx context.Context, runtime *common.RuntimeContext) error {
return validateUpdateV2(ctx, runtime)
},
DryRun: func(ctx context.Context, runtime *common.RuntimeContext) *common.DryRunAPI {
return dryRunUpdateV2(ctx, runtime)
},
Execute: func(ctx context.Context, runtime *common.RuntimeContext) error {
return executeUpdateV2(ctx, runtime)
},
}