MCPcopy Create free account
hub / github.com/dropbox/dbxcli / shareLinkUpdate

Function shareLinkUpdate

cmd/share_link_update.go:48–99  ·  view source on GitHub ↗
(cmd *cobra.Command, args []string)

Source from the content-addressed store, hash-verified

46}
47
48func shareLinkUpdate(cmd *cobra.Command, args []string) error {
49 if len(args) != 1 {
50 return invalidArgumentsErrorWithDetails("`share-link update` requires a `url` argument", argumentErrorDetails("url"))
51 }
52
53 url := args[0]
54 if url == "" {
55 return invalidArgumentsErrorWithDetails("`share-link update` requires a non-empty URL", mergeJSONErrorDetails(argumentErrorDetails("url"), urlErrorDetails(url)))
56 }
57
58 opts, err := parseShareLinkUpdateOptions(cmd)
59 if err != nil {
60 return err
61 }
62
63 dbx := newSharedLinkClient(config)
64 if opts.usesRawSettings() {
65 if err := dbx.ModifySharedLinkSettingsRawContext(currentContext(), url, rawSharedLinkSettingsFromUpdateOptions(opts), opts.removeExpiration); err != nil {
66 return withJSONErrorDetails(err, urlErrorDetails(url), operationErrorDetails("share_link_update"))
67 }
68 return renderShareLinkUpdateOutput(cmd, dbx, url, opts, nil)
69 }
70
71 settings := sharing.NewSharedLinkSettings()
72 if opts.expires != nil {
73 t := dropbox.DBXTime(*opts.expires)
74 settings.Expires = &t
75 }
76 if opts.allowDownload {
77 settings.AllowDownload = true
78 }
79 if opts.audience != nil {
80 settings.Audience = opts.audience
81 }
82 if opts.password.set {
83 settings.RequirePassword = true
84 settings.LinkPassword = opts.password.password
85 }
86
87 arg := sharing.NewModifySharedLinkSettingsArgs(url, settings)
88 arg.RemoveExpiration = opts.removeExpiration
89
90 if opts.hasSDKSettings() {
91 link, err := dbx.ModifySharedLinkSettingsContext(currentContext(), arg)
92 if err != nil {
93 return withJSONErrorDetails(err, urlErrorDetails(url), operationErrorDetails("share_link_update"))
94 }
95 return renderShareLinkUpdateOutput(cmd, dbx, url, opts, link)
96 }
97
98 return renderShareLinkUpdateOutput(cmd, dbx, url, opts, nil)
99}
100
101func renderShareLinkUpdateOutput(cmd *cobra.Command, dbx sharedLinkClient, url string, opts shareLinkUpdateOptions, link sharing.IsSharedLinkMetadata) error {
102 commandVerboseStatus(cmd, "Updated shared link %s", url)

Calls 14

argumentErrorDetailsFunction · 0.85
mergeJSONErrorDetailsFunction · 0.85
urlErrorDetailsFunction · 0.85
currentContextFunction · 0.85
withJSONErrorDetailsFunction · 0.85
operationErrorDetailsFunction · 0.85
usesRawSettingsMethod · 0.80
hasSDKSettingsMethod · 0.80