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(EmailHash),
new(Poll),
new(Judgment),
new(PollJudgment),
)
gonicNames := []string{"SSL", "UID"}

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

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

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

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

Loading…
Cancel
Save