diff options
Diffstat (limited to 'drive/revision_delete.go')
| -rw-r--r-- | drive/revision_delete.go | 31 |
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 +} |
