Fill Session.Started
This commit is contained in:
@@ -15,7 +15,7 @@ func (Session) Fields() []ent.Field {
|
|||||||
return []ent.Field{
|
return []ent.Field{
|
||||||
field.UUID("id", uuid.Nil).Immutable(),
|
field.UUID("id", uuid.Nil).Immutable(),
|
||||||
field.Time("created").Immutable(),
|
field.Time("created").Immutable(),
|
||||||
field.Time("started").Nillable().Optional(), // TODO remove?
|
field.Time("started").Nillable().Optional(),
|
||||||
field.String("code").MinLen(6).MaxLen(6).Immutable().Unique(),
|
field.String("code").MinLen(6).MaxLen(6).Immutable().Unique(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -188,6 +188,10 @@ func (m *Model) NextQuestion(sessionId uuid.UUID, now time.Time, c context.Conte
|
|||||||
// TODO rollback only if not yet committed
|
// TODO rollback only if not yet committed
|
||||||
defer tx.Rollback()
|
defer tx.Rollback()
|
||||||
|
|
||||||
|
if err := tx.Session.Update().Where(session.ID(sessionId)).Where(session.StartedIsNil()).SetStarted(now).Exec(c); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
var query = tx.Question.Query().Where(question.HasGameWith(game.HasSessionsWith(session.ID(sessionId)))).Order(ent.Asc(question.FieldOrder))
|
var query = tx.Question.Query().Where(question.HasGameWith(game.HasSessionsWith(session.ID(sessionId)))).Order(ent.Asc(question.FieldOrder))
|
||||||
|
|
||||||
if current, err := tx.AskedQuestion.Query().Where(askedquestion.HasSessionWith(session.ID(sessionId))).WithQuestion().Order(ent.Desc(askedquestion.FieldAsked)).First(c); err == nil {
|
if current, err := tx.AskedQuestion.Query().Where(askedquestion.HasSessionWith(session.ID(sessionId))).WithQuestion().Order(ent.Desc(askedquestion.FieldAsked)).First(c); err == nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user