diff options
| author | Petter Rasmussen | 2016-01-23 17:40:59 +0100 | 
|---|---|---|
| committer | Petter Rasmussen | 2016-01-23 17:40:59 +0100 | 
| commit | 5386c4913a6b069f187da24615f545e2838265d6 (patch) | |
| tree | 72a258175fc201f4954abbc2d999909723f26f67 /drive/revision_delete.go | |
| parent | a4217d488c382bee3e9f7faf33ec3d139ba54cd5 (diff) | |
| download | gdrive-5386c4913a6b069f187da24615f545e2838265d6.tar.bz2 | |
Implement delete revision
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 +} | 
