Skip to content

Commit ec1c7dd

Browse files
added skip challenge functionality
1 parent e39fc18 commit ec1c7dd

File tree

8 files changed

+226
-98
lines changed

8 files changed

+226
-98
lines changed

database/query.go

+5-3
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,21 @@ var (
2626
"created_at timestamp, " +
2727
"last_access timestamp, " +
2828
"step integer, " +
29+
"skipped_challenges text, " +
2930
"solved_challenges text);"
3031

31-
AddTeamQuery = "INSERT INTO team (tag, event_id, email, name, password, created_at, last_access, step, solved_challenges)" +
32-
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)"
32+
AddTeamQuery = "INSERT INTO team (tag, event_id, email, name, password, created_at, last_access, step, skipped_challenges, solved_challenges)" +
33+
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)"
3334

3435
AddEventQuery = "INSERT INTO event (tag, name, available, capacity, frontends, status, exercises, started_at, finish_expected, finished_at, createdby, onlyvpn)" +
35-
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10,$11,$12)"
36+
"VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12)"
3637

3738
UpdateCloseEvent = "UPDATE event SET tag = $2, finished_at = $3 WHERE tag = $1"
3839
UpdateEventStatus = "UPDATE event SET status = $2 WHERE tag = $1 "
3940

4041
UpdateEventLastaccessedDate = "UPDATE team SET last_access = $2 WHERE tag = $1"
4142
UpdateTeamSolvedChl = "UPDATE team SET solved_challenges = $2 WHERE tag = $1"
43+
UpdateTeamSkippedChl = "UPDATE team SET skipped_challenges = $2 WHERE tag = $1"
4244
UpdateTeamStep = "UPDATE team SET step = $2 WHERE tag = $1"
4345

4446
QuerySolvedChls = "SELECT solved_challenges FROM team WHERE tag=$1"

database/store.go

+15-3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ type Store interface {
4646
GetEventStatus(*pb.GetEventStatusRequest) (int32, error)
4747
SetEventStatus(*pb.SetEventStatusRequest) (int32, error)
4848
UpdateTeamSolvedChallenge(*pb.UpdateTeamSolvedChallengeRequest) (string, error)
49+
UpdateTeamSkippedChallenge(request *pb.UpdateTeamSkippedChallengeRequest) (string, error)
4950
UpdateTeamStep(request *pb.UpdateTeamStepTrackerRequest) (string, error)
5051
UpdateTeamLastAccess(*pb.UpdateTeamLastAccessRequest) (string, error)
5152
UpdateCloseEvent(*pb.UpdateEventRequest) (string, error)
@@ -111,7 +112,7 @@ func (s *store) AddTeam(in *pb.AddTeamRequest) (string, error) {
111112
return "", err
112113
}
113114

114-
_, err := s.db.Exec(AddTeamQuery, in.Id, eventId, in.Email, in.Name, in.Password, now, now, 0, "[]")
115+
_, err := s.db.Exec(AddTeamQuery, in.Id, eventId, in.Email, in.Name, in.Password, now, now, 0, "[]", "[]")
115116
if err != nil {
116117
return "", err
117118
}
@@ -184,7 +185,7 @@ func (s *store) GetTeams(tag string) ([]model.Team, error) {
184185

185186
team := new(model.Team)
186187
err := rows.Scan(&team.Id, &team.Tag, &team.EventId, &team.Email, &team.Name, &team.Password, &team.CreatedAt,
187-
&team.LastAccess, &team.Step, &team.SolvedChallenges)
188+
&team.LastAccess, &team.Step, &team.SkippedChallenges, &team.SolvedChallenges)
188189
if err != nil && !strings.Contains(err.Error(), handleNullConversionError) {
189190
return nil, err
190191
}
@@ -244,11 +245,22 @@ func (s *store) UpdateTeamSolvedChallenge(in *pb.UpdateTeamSolvedChallengeReques
244245
return OK, nil
245246
}
246247

248+
func (s *store) UpdateTeamSkippedChallenge(in *pb.UpdateTeamSkippedChallengeRequest) (string, error) {
249+
s.m.Lock()
250+
defer s.m.Unlock()
251+
252+
_, err := s.db.Exec(UpdateTeamSkippedChl, in.TeamId, in.SkippedChals)
253+
if err != nil {
254+
return "", err
255+
}
256+
return OK, nil
257+
}
258+
247259
func (s *store) UpdateTeamStep(in *pb.UpdateTeamStepTrackerRequest) (string, error) {
248260
s.m.Lock()
249261
defer s.m.Unlock()
250262

251-
_, err := s.db.Exec(UpdateEventLastaccessedDate, in.TeamId, in.Step)
263+
_, err := s.db.Exec(UpdateTeamStep, in.TeamId, in.Step)
252264
if err != nil {
253265
return "", err
254266
}

database/timeline_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func setup() (*sql.DB, error) {
4949

5050
func insertTeamEvent(eid int, db *sql.DB) error {
5151

52-
_, err := db.Exec(AddTeamQuery, "", eid, "random@email.com", "randomteam", "12345", time.Now(), time.Now(), 0, "[]")
52+
_, err := db.Exec(AddTeamQuery, "", eid, "random@email.com", "randomteam", "12345", time.Now(), time.Now(), 0, "[]", "[]")
5353
if err != nil {
5454
return err
5555
}

docker-compose-dev.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ services:
2525
ports:
2626
- '5432:5432'
2727
volumes:
28-
- data:/var/lib/postgresql/data
28+
- ${PSQL_DATA_PATH}:/var/lib/postgresql/data
2929
networks:
3030
- internal
3131

model/model.go

+11-10
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,17 @@ type Event struct {
1717
}
1818

1919
type Team struct {
20-
Id uint //DB Primary key
21-
Tag string
22-
EventId uint //DB Primary key of the event
23-
Email string
24-
Name string
25-
Password string
26-
CreatedAt string
27-
LastAccess string
28-
SolvedChallenges string
29-
Step uint
20+
Id uint //DB Primary key
21+
Tag string
22+
EventId uint //DB Primary key of the event
23+
Email string
24+
Name string
25+
Password string
26+
CreatedAt string
27+
LastAccess string
28+
SolvedChallenges string
29+
Step uint
30+
SkippedChallenges string
3031
}
3132

3233
type Config struct {

0 commit comments

Comments
 (0)