From e49693ad2cb844c8278ee44fd78b4d93388a5957 Mon Sep 17 00:00:00 2001 From: Andriy Oblivantsev Date: Tue, 15 Sep 2026 08:31:47 +0000 Subject: [PATCH] =?UTF-8?q?feat(oo):=20dav=20rm=20=E2=80=94=20=D1=83=D0=B4?= =?UTF-8?q?=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=B0=D0=BF=D0=BE?= =?UTF-8?q?=D0=BA/=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2=20Documents=20(#30)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DeleteDavItems был только в клиенте; добавлена команда `oo dav rm [FILE_ID...] --folders F1,F2`. --- cmd/oo/dav.go | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/cmd/oo/dav.go b/cmd/oo/dav.go index 4683444..56272f4 100644 --- a/cmd/oo/dav.go +++ b/cmd/oo/dav.go @@ -25,6 +25,7 @@ func davCmd() *cobra.Command { cmd.AddCommand(davMoveCmd()) cmd.AddCommand(davCopyCmd()) cmd.AddCommand(davMkdirCmd()) + cmd.AddCommand(davRemoveCmd()) cmd.AddCommand(davRenameFileCmd()) cmd.AddCommand(davRenameFolderCmd()) cmd.AddCommand(davDownloadCmd()) @@ -184,6 +185,32 @@ func davMkdirCmd() *cobra.Command { } } +func davRemoveCmd() *cobra.Command { + var folderIDs []string + cmd := &cobra.Command{ + Use: "rm [FILE_ID...]", + Aliases: []string{"delete"}, + Short: "Permanently delete file(s) and/or folder(s) from Documents", + Args: cobra.ArbitraryArgs, + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) == 0 && len(folderIDs) == 0 { + return fmt.Errorf("dav rm: give at least one FILE_ID or --folders") + } + c, err := newOO(cmd) + if err != nil { + return err + } + if err := c.DeleteDavItems(cmd.Context(), folderIDs, args); err != nil { + return err + } + printObject(map[string]any{"deleted_files": args, "deleted_folders": folderIDs}) + return nil + }, + } + cmd.Flags().StringSliceVar(&folderIDs, "folders", nil, "folder ids to delete") + return cmd +} + func davRenameFileCmd() *cobra.Command { return &cobra.Command{ Use: "rename-file FILE_ID NEW_TITLE",