From 6451dd2928d7299dbcc3c34b3e6b8a8050f4c796 Mon Sep 17 00:00:00 2001 From: Amine Hilaly Date: Sat, 15 Jun 2019 02:50:09 +0200 Subject: [PATCH] [cache] BugCache: Add set metadata methods [bridge/github] fix add/remove mutation requests [bridge/github] iterator: fix typo --- bridge/github/export.go | 13 +++++-------- bridge/github/export_query.go | 9 +++++++-- bridge/github/iterator.go | 2 +- cache/bug_cache.go | 18 ++++++++++++++++++ 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/bridge/github/export.go b/bridge/github/export.go index 8fcbd9e85f352ca9754bf66b93515f16588f9716..37207df70279e695ad8561ceffac2afb35a1f72f 100644 --- a/bridge/github/export.go +++ b/bridge/github/export.go @@ -10,15 +10,11 @@ import ( "net/http" "time" + "github.com/shurcooL/githubv4" + "github.com/MichaelMure/git-bug/bridge/core" "github.com/MichaelMure/git-bug/bug" "github.com/MichaelMure/git-bug/cache" - "github.com/shurcooL/githubv4" -) - -const ( - keyGithubIdExport = "github-id" - keyGithubUrlExport = "github-url" ) // githubImporter implement the Importer interface @@ -449,7 +445,7 @@ func (ge *githubExporter) updateGithubIssueLabels(labelableID string, added, rem return fmt.Errorf("getting added labels ids: %v", err) } - m := &updateIssueMutation{} + m := &addLabelsToLabelableMutation{} inputAdd := &githubv4.AddLabelsToLabelableInput{ LabelableID: labelableID, LabelIDs: addedIDs, @@ -465,13 +461,14 @@ func (ge *githubExporter) updateGithubIssueLabels(labelableID string, added, rem return fmt.Errorf("getting added labels ids: %v", err) } + m2 := &removeLabelsFromLabelableMutation{} inputRemove := &githubv4.RemoveLabelsFromLabelableInput{ LabelableID: labelableID, LabelIDs: removedIDs, } // remove label labels - if err := ge.gc.Mutate(context.TODO(), m, inputRemove, nil); err != nil { + if err := ge.gc.Mutate(context.TODO(), m2, inputRemove, nil); err != nil { return err } diff --git a/bridge/github/export_query.go b/bridge/github/export_query.go index ff03df3430f99dac6099bf49ed71f54dc9eafa45..a527399e61ee8eb9f685e6f080dfc27bee7d1d87 100644 --- a/bridge/github/export_query.go +++ b/bridge/github/export_query.go @@ -33,8 +33,13 @@ type updateIssueCommentMutation struct { IssueComment struct { ID string `graphql:"id"` URL string `graphql:"url"` - } `graphql:"addComment(input:$input)"` + } `graphql:"updateIssueComment(input:$input)"` +} + +type removeLabelsFromLabelableMutation struct { + AddLabels struct{} `graphql:"removeLabelsFromLabelable(input:$input)"` } -type removeLabelsMutation struct { +type addLabelsToLabelableMutation struct { + RemoveLabels struct{} `graphql:"addLabelsToLabelable(input:$input)"` } diff --git a/bridge/github/iterator.go b/bridge/github/iterator.go index fcf72b8f3fb258121f9721003c9416dcd1daabaf..3620f50d8030601d087173246def02682122e0d8 100644 --- a/bridge/github/iterator.go +++ b/bridge/github/iterator.go @@ -59,7 +59,7 @@ type iterator struct { commentEdit commentEditIterator } -// NewIterator create and initalize a new iterator +// NewIterator create and initialize a new iterator func NewIterator(owner, project, token string, since time.Time) *iterator { i := &iterator{ gc: buildClient(token), diff --git a/cache/bug_cache.go b/cache/bug_cache.go index aad6dab81cff4997a1efbc81242d33eac85f2cff..36f2139edb1f0c8929ff00f12d243ab159e47d1c 100644 --- a/cache/bug_cache.go +++ b/cache/bug_cache.go @@ -254,6 +254,24 @@ func (c *BugCache) EditCommentRaw(author *IdentityCache, unixTime int64, target return op, c.notifyUpdated() } +func (c *BugCache) SetMetadata(target git.Hash, newMetadata map[string]string) (*bug.SetMetadataOperation, error) { + author, err := c.repoCache.GetUserIdentity() + if err != nil { + return nil, err + } + + return c.SetMetadataRaw(author, time.Now().Unix(), target, nil) +} + +func (c *BugCache) SetMetadataRaw(author *IdentityCache, unixTime int64, target git.Hash, newMetadata map[string]string) (*bug.SetMetadataOperation, error) { + op, err := bug.SetMetadata(c.bug, author.Identity, unixTime, target, newMetadata) + if err != nil { + return nil, err + } + + return op, c.notifyUpdated() +} + func (c *BugCache) Commit() error { err := c.bug.Commit(c.repoCache.repo) if err != nil {