Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/api/cmd/samples/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ func main() {

hackathonRepo := repository.NewHackathonRepository(db)

appOpenTime := time.Date(2026, 5, 26, 19, 13, 20, 0, time.UTC)
appOpenTime := time.Date(2026, 4, 26, 19, 13, 20, 0, time.UTC)
appCloseTime := time.Date(2026, 6, 26, 19, 13, 20, 0, time.UTC)
earlyAppOpenTime := time.Date(2026, 4, 20, 19, 13, 20, 0, time.UTC)
earlyAppCloseTime := time.Date(2026, 4, 26, 19, 13, 20, 0, time.UTC)
Expand Down
2 changes: 1 addition & 1 deletion apps/api/docs/openapi.json

Large diffs are not rendered by default.

23 changes: 13 additions & 10 deletions apps/api/internal/api/middleware/auth.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ type UserContext struct {
Rfid *string `json:"rfid"`

CheckedInAt *time.Time `json:"checkedInAt"`

HasSeeNewApplicationStatus *bool `json:"hasSeenNewApplicationStatus"`
}

type SessionContext struct {
Expand Down Expand Up @@ -191,16 +193,17 @@ func (m *AuthMiddleware) RequireAuth(next http.Handler) http.Handler {

// TODO: I don't think we need UserContext here, just return sqlc.User directly
userContext := UserContext{
UserID: user.UserID,
Name: user.Name,
Email: user.Email,
PreferredEmail: user.PreferredEmail,
Image: user.Image,
Onboarded: user.Onboarded,
Role: user.Role,
EmailConsent: user.EmailConsent,
Rfid: user.Rfid,
CheckedInAt: user.CheckedInAt,
UserID: user.UserID,
Name: user.Name,
Email: user.Email,
PreferredEmail: user.PreferredEmail,
Image: user.Image,
Onboarded: user.Onboarded,
Role: user.Role,
EmailConsent: user.EmailConsent,
Rfid: user.Rfid,
CheckedInAt: user.CheckedInAt,
HasSeeNewApplicationStatus: user.HasSeenNewApplicationStatus,
}

sessionContext := SessionContext{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- +goose Up
alter table users add has_seen_new_application_status boolean;

-- +goose Down
alter table users drop column has_seen_new_application_status;
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
-- +goose Up
ALTER TYPE application_status
ADD VALUE IF NOT EXISTS 'confirmed';

-- +goose Down
3 changes: 1 addition & 2 deletions apps/api/internal/database/queries/applications.sql
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ SELECT user_id FROM applications
WHERE status = 'submitted'
AND experience_rating IS NULL
AND passion_rating IS NULL
ORDER BY
ORDER BY
user_id ASC;

-- name: ListAdmissionCandidates :many
Expand Down Expand Up @@ -105,4 +105,3 @@ WHERE user_id IN (
LIMIT @acceptanceCount::int
)
RETURNING user_id;

5 changes: 4 additions & 1 deletion apps/api/internal/database/queries/sessions.sql
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@ DELETE FROM sessions
WHERE expires_at < NOW();

-- name: GetActiveSessionUserInfo :one
SELECT u.id AS user_id, u.name, u.email, u.preferred_email, u.onboarded, u.image, u.role, u.email_consent, u.checked_in_at, u.rfid, s.last_used_at
SELECT u.id AS user_id, u.name, u.email, u.preferred_email,
u.onboarded, u.image, u.role, u.email_consent,
u.checked_in_at, u.rfid, u.has_seen_new_application_status,
s.last_used_at
FROM sessions s
JOIN users u ON s.user_id = u.id
WHERE s.id = $1
Expand Down
7 changes: 4 additions & 3 deletions apps/api/internal/database/queries/users.sql
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,9 @@ SET
email_consent = CASE WHEN @email_consent_do_update::boolean THEN @email_consent ELSE email_consent END,
checked_in_at = CASE WHEN @checked_in_at_do_update::boolean THEN @checked_in_at ELSE checked_in_at END,
rfid = CASE WHEN @rfid_do_update::boolean THEN @rfid ELSE rfid END,
role = CASE WHEN @role_do_update::boolean THEN @role ELSE role END,
role_assigned_at = CASE WHEN @role_do_update::boolean THEN NOW() ELSE role_assigned_at END,
-- role = CASE WHEN @role_do_update::boolean THEN @role ELSE role END,
-- role_assigned_at = CASE WHEN @role_do_update::boolean THEN NOW() ELSE role_assigned_at END,
has_seen_new_application_status = CASE WHEN @has_seen_new_application_status_do_update::boolean THEN @has_seen_new_application_status ELSE has_seen_new_application_status END,
updated_at = NOW()
WHERE
id = @id::uuid;
Expand Down Expand Up @@ -82,4 +83,4 @@ WHERE id = @user_id::uuid;
-- name: UpdateRFID :exec
UPDATE users
SET rfid = @rfid
WHERE id = @user_id::uuid;
WHERE id = @user_id::uuid;
2 changes: 1 addition & 1 deletion apps/api/internal/database/sqlc/applications.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion apps/api/internal/database/sqlc/hackathons.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 16 additions & 14 deletions apps/api/internal/database/sqlc/models.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

29 changes: 17 additions & 12 deletions apps/api/internal/database/sqlc/sessions.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

66 changes: 36 additions & 30 deletions apps/api/internal/database/sqlc/users.sql.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading