aboutsummaryrefslogtreecommitdiffstats
path: root/drive/revision_delete.go
diff options
context:
space:
mode:
authorPetter Rasmussen2016-01-23 17:40:59 +0100
committerPetter Rasmussen2016-01-23 17:40:59 +0100
commit5386c4913a6b069f187da24615f545e2838265d6 (patch)
tree72a258175fc201f4954abbc2d999909723f26f67 /drive/revision_delete.go
parenta4217d488c382bee3e9f7faf33ec3d139ba54cd5 (diff)
downloadgdrive-5386c4913a6b069f187da24615f545e2838265d6.tar.bz2
Implement delete revision
Diffstat (limited to 'drive/revision_delete.go')
-rw-r--r--drive/revision_delete.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/drive/revision_delete.go b/drive/revision_delete.go
new file mode 100644
index 0000000..88c81c6
--- /dev/null
+++ b/drive/revision_delete.go
@@ -0,0 +1,31 @@
+package drive
+
+import (
+ "io"
+ "fmt"
+)
+
+type DeleteRevisionArgs struct {
+ Out io.Writer
+ FileId string
+ RevisionId string
+}
+
+func (self *Drive) DeleteRevision(args DeleteRevisionArgs) (err error) {
+ rev, err := self.service.Revisions.Get(args.FileId, args.RevisionId).Fields("originalFilename").Do()
+ if err != nil {
+ return fmt.Errorf("Failed to get revision: %s", err)
+ }
+
+ if rev.OriginalFilename == "" {
+ return fmt.Errorf("Deleting revisions for this file type is not supported")
+ }
+
+ err = self.service.Revisions.Delete(args.FileId, args.RevisionId).Do()
+ if err != nil {
+ return fmt.Errorf("Failed to delete revision", err)
+ }
+
+ fmt.Fprintf(args.Out, "Deleted revision '%s'\n", args.RevisionId)
+ return
+}