aboutsummaryrefslogtreecommitdiffstats
path: root/drive/revision_delete.go
blob: de53041003f443ac4580db4a48ab0e7aef8960c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package drive

import (
	"fmt"
	"io"
)

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
}