From ede2707070f341749eb329cad5e486707a091a06 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Fri, 20 Mar 2015 18:48:42 +0700 Subject: [PATCH] Update contrib model --- db/contrib.go | 19 +++++++++---------- task/sync.go | 10 +++++----- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/db/contrib.go b/db/contrib.go index f181103..71aafc6 100644 --- a/db/contrib.go +++ b/db/contrib.go @@ -6,21 +6,20 @@ import ( type Contrib struct { Week uint64 `json:"week"` - Author string `json:"author"` - Owner string `json:"owner"` - Repo string `json:"repo"` + OrgID uint64 `json:"org_id"` + RepoID uint64 `json:"repo_id"` + UserID uint64 `json:"user_id"` Commits uint64 `json:"commits"` Additions uint64 `json:"additions"` Deletions uint64 `json:"deletions"` } -const saveContribQuery = ` -insert into contribs (week, author, owner, repo, commits, additions, deletions) -values (:week, :author, :owner, :repo, :commits, :additions, :deletions) -on duplicate key update -commits=values(commits), additions=values(additions), deletions=values(deletions)` - func (c *Contrib) Save() { defer measure("SaveContrib", time.Now()) - mustExecN(saveContribQuery, c) + mustExecN(` + insert into contribs (week, org_id, repo_id, user_id, commits, additions, deletions) + values (:week, :org_id, :repo_id, :user_id, :commits, :additions, :deletions) + on duplicate key update + commits=values(commits), additions=values(additions), deletions=values(deletions) + `, c) } diff --git a/task/sync.go b/task/sync.go index 40824e7..f054ff5 100644 --- a/task/sync.go +++ b/task/sync.go @@ -39,11 +39,11 @@ func SyncRepos(token, owner string) { } } -func SyncContrib(token, owner, repo string) { +func SyncContrib(token, owner string, repo *db.Repo) { defer report("SyncContrib", time.Now()) client := newGithubClient(token) - contribs, resp, err := client.Repositories.ListContributorsStats(owner, repo) + contribs, resp, err := client.Repositories.ListContributorsStats(owner, repo.Name) saveResponseMeta(token, resp) if err != nil { if err.Error() == "EOF" { @@ -60,9 +60,9 @@ func SyncContrib(token, owner, repo string) { c := &db.Contrib{ Week: uint64(week.Week.Time.Unix()), - Author: *contrib.Author.Login, - Owner: owner, - Repo: repo, + OrgID: repo.OrgID, + RepoID: repo.ID, + UserID: uint64(*contrib.Author.ID), Commits: uint64(*week.Commits), Additions: uint64(*week.Additions), Deletions: uint64(*week.Deletions),