Rename `Judgment` into `PollJudgment`.

After careful consideration, it's probably best to namespace.
Also, explicit is better than implicit.   :)

BREAKING CHANGE:  Not sure how the migrations will operate here.
This is why it's best to do it now than once we're actually using it.
mj
domi41 4 years ago
parent 817cecd6c1
commit 2b107ec543

@ -126,7 +126,7 @@ func init() {
new(LanguageStat), new(LanguageStat),
new(EmailHash), new(EmailHash),
new(Poll), new(Poll),
new(Judgment), new(PollJudgment),
) )
gonicNames := []string{"SSL", "UID"} gonicNames := []string{"SSL", "UID"}

@ -42,7 +42,7 @@ type Poll struct {
ClosedUnix timeutil.TimeStamp `xorm:"INDEX"` ClosedUnix timeutil.TimeStamp `xorm:"INDEX"`
// No idea how xorm works -- help! // No idea how xorm works -- help!
//Judgments []*Judgment `xorm:"-"` //Judgments []*PollJudgment `xorm:"-"`
//Judgments JudgmentList `xorm:"-"` //Judgments JudgmentList `xorm:"-"`
} }
@ -68,17 +68,17 @@ func (poll *Poll) GetGradationList() []string {
func (poll *Poll) GetCandidatesIDs() (_ []int64, err error) { func (poll *Poll) GetCandidatesIDs() (_ []int64, err error) {
ids := make([]int64, 0, 10) ids := make([]int64, 0, 10)
if err := x.Table("judgment"). if err := x.Table("poll_judgment").
Select("DISTINCT candidate_id"). Select("DISTINCT `poll_judgment`.`candidate_id`").
Where("poll_id = ?", poll.ID). Where("`poll_judgment`.`poll_id` = ?", poll.ID).
OrderBy("candidate_id asc"). OrderBy("`poll_judgment`.`candidate_id` ASC").
Find(&ids); err != nil { Find(&ids); err != nil {
return nil, err return nil, err
} }
return ids, nil return ids, nil
} }
func (poll *Poll) GetJudgmentOnCandidate(judge *User, candidateID int64) (judgmernt *Judgment) { func (poll *Poll) GetJudgmentOnCandidate(judge *User, candidateID int64) (judgmernt *PollJudgment) {
judgment, err := getJudgmentOfJudgeOnPollCandidate(x, judge.ID, poll.ID, candidateID) judgment, err := getJudgmentOfJudgeOnPollCandidate(x, judge.ID, poll.ID, candidateID)
if nil != err { if nil != err {
return nil return nil
@ -105,11 +105,11 @@ func (poll *Poll) GetResult() (results *PollResult) {
func (poll *Poll) CountGrades(candidateID int64, grade uint8) (_ uint64, err error) { func (poll *Poll) CountGrades(candidateID int64, grade uint8) (_ uint64, err error) {
rows := make([]int64, 0, 2) rows := make([]int64, 0, 2)
if err := x.Table("judgment"). if err := x.Table("poll_judgment").
Select("COUNT(*) as amount"). Select("COUNT(*) as amount").
Where("poll_id = ?", poll.ID). Where("`poll_judgment`.`poll_id` = ?", poll.ID).
And("candidate_id = ?", candidateID). And("`poll_judgment`.`candidate_id` = ?", candidateID).
And("grade = ?", grade). And("`poll_judgment`.`grade` = ?", grade).
// Use Get() perhaps? // Use Get() perhaps?
Find(&rows); err != nil { Find(&rows); err != nil {
return 0, err return 0, err
@ -204,7 +204,7 @@ func GetPolls(repoID int64, page int) (PollList, error) {
func getPollByRepoID(e Engine, repoID, id int64) (*Poll, error) { func getPollByRepoID(e Engine, repoID, id int64) (*Poll, error) {
m := new(Poll) m := new(Poll)
has, err := e.ID(id).Where("repo_id=?", repoID).Get(m) has, err := e.ID(id).Where("repo_id = ?", repoID).Get(m)
if err != nil { if err != nil {
return nil, err return nil, err
} else if !has { } else if !has {

@ -15,7 +15,7 @@ import (
) )
// A Judgment on a Poll // A Judgment on a Poll
type Judgment struct { type PollJudgment struct {
ID int64 `xorm:"pk autoincr"` ID int64 `xorm:"pk autoincr"`
PollID int64 `xorm:"INDEX UNIQUE(poll_judge_candidate)"` PollID int64 `xorm:"INDEX UNIQUE(poll_judge_candidate)"`
Poll *Poll `xorm:"-"` Poll *Poll `xorm:"-"`
@ -58,7 +58,7 @@ type DeleteJudgmentOptions struct {
CandidateID int64 CandidateID int64
} }
func CreateJudgment(opts *CreateJudgmentOptions) (judgment *Judgment, err error) { func CreateJudgment(opts *CreateJudgmentOptions) (judgment *PollJudgment, err error) {
sess := x.NewSession() sess := x.NewSession()
defer sess.Close() defer sess.Close()
if err = sess.Begin(); err != nil { if err = sess.Begin(); err != nil {
@ -77,8 +77,8 @@ func CreateJudgment(opts *CreateJudgmentOptions) (judgment *Judgment, err error)
return judgment, nil return judgment, nil
} }
func createJudgment(e *xorm.Session, opts *CreateJudgmentOptions) (_ *Judgment, err error) { func createJudgment(e *xorm.Session, opts *CreateJudgmentOptions) (_ *PollJudgment, err error) {
judgment := &Judgment{ judgment := &PollJudgment{
PollID: opts.Poll.ID, PollID: opts.Poll.ID,
Poll: opts.Poll, Poll: opts.Poll,
JudgeID: opts.Judge.ID, JudgeID: opts.Judge.ID,
@ -98,8 +98,8 @@ func createJudgment(e *xorm.Session, opts *CreateJudgmentOptions) (_ *Judgment,
return judgment, nil return judgment, nil
} }
func getJudgmentByID(e Engine, id int64) (*Judgment, error) { func getJudgmentByID(e Engine, id int64) (*PollJudgment, error) {
repo := new(Judgment) repo := new(PollJudgment)
has, err := e.ID(id).Get(repo) has, err := e.ID(id).Get(repo)
if err != nil { if err != nil {
return nil, err return nil, err
@ -109,15 +109,15 @@ func getJudgmentByID(e Engine, id int64) (*Judgment, error) {
return repo, nil return repo, nil
} }
func getJudgmentOfJudgeOnPollCandidate(e Engine, judgeID int64, pollID int64, candidateID int64) (judgment *Judgment, err error) { func getJudgmentOfJudgeOnPollCandidate(e Engine, judgeID int64, pollID int64, candidateID int64) (judgment *PollJudgment, err error) {
// We could probably use only one SQL query instead of two here. // We could probably use only one SQL query instead of two here.
// No idea how this ORM works, and sprinting past it with snippet copy-pasting. // No idea how this ORM works, and sprinting past it with snippet copy-pasting.
judgmentsIds := make([]int64, 0, 1) judgmentsIds := make([]int64, 0, 1)
if err = e.Table("judgment"). if err = e.Table("poll_judgment").
Cols("id"). Cols("id").
Where("`judgment`.judge_id = ?", judgeID). Where("`poll_judgment`.`judge_id` = ?", judgeID).
And("`judgment`.poll_id = ?", pollID). And("`poll_judgment`.`poll_id` = ?", pollID).
And("`judgment`.candidate_id = ?", candidateID). And("`poll_judgment`.`candidate_id` = ?", candidateID).
Limit(1). // perhaps .Get() is what we need here? Limit(1). // perhaps .Get() is what we need here?
Find(&judgmentsIds); err != nil { Find(&judgmentsIds); err != nil {
return nil, fmt.Errorf("find judgment: %v", err) return nil, fmt.Errorf("find judgment: %v", err)
@ -135,7 +135,7 @@ func getJudgmentOfJudgeOnPollCandidate(e Engine, judgeID int64, pollID int64, ca
return judgment, nil return judgment, nil
} }
func UpdateJudgment(opts *UpdateJudgmentOptions) (judgment *Judgment, err error) { func UpdateJudgment(opts *UpdateJudgmentOptions) (judgment *PollJudgment, err error) {
sess := x.NewSession() sess := x.NewSession()
defer sess.Close() defer sess.Close()
if err = sess.Begin(); err != nil { if err = sess.Begin(); err != nil {

@ -12,7 +12,7 @@ import (
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestJudgment_Create(t *testing.T) { func TestPollJudgment_Create(t *testing.T) {
assert.NoError(t, PrepareTestDatabase()) assert.NoError(t, PrepareTestDatabase())
repo := AssertExistsAndLoadBean(t, &Repository{ID: 2}).(*Repository) repo := AssertExistsAndLoadBean(t, &Repository{ID: 2}).(*Repository)
user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User) user := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)

@ -17,7 +17,7 @@ import (
) )
type CreateJudgmentResponse struct { type CreateJudgmentResponse struct {
Judgment *models.Judgment Judgment *models.PollJudgment
} }
// Creates, Updates or Deletes a Judgment depending on the parameters // Creates, Updates or Deletes a Judgment depending on the parameters

Loading…
Cancel
Save