diff options
Diffstat (limited to 'drive')
| -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 +}  | 
