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: 0 additions & 2 deletions backend/app.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import os

from flask import Flask

from backend.config import Config
from backend.extensions import cors, db, jwt, migrate

Expand Down
51 changes: 51 additions & 0 deletions backend/models/quest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
from ..extensions import db
import uuid


class Quest(db.Model):
__tablename__ = "coding_quests"
id = db.Column(db.String(36), primary_key=True, default=lambda: str(uuid.uuid4()))
language = db.Column(db.String(50), nullable=False)
difficulty = db.Column(db.String(50), nullable=False)
quest_name = db.Column(db.String(255), nullable=False)
solved_times = db.Column(db.Integer, default=0, nullable=True)
quest_author = db.Column(db.String(255), nullable=False)
created_at = db.Column(
db.DateTime, default=db.func.current_timestamp(), nullable=False
)
updated_at = db.Column(
db.DateTime,
default=db.func.current_timestamp(),
onupdate=db.func.current_timestamp(),
nullable=False,
)
condition = db.Column(db.Text, nullable=False)
function_template = db.Column(db.Text, nullable=False)

# Quest inputs, where input_0 is the null test
input_0 = db.Column(db.Text, nullable=False) # Input for the quest
input_1 = db.Column(db.Text, nullable=True) # Input for the quest
input_2 = db.Column(db.Text, nullable=True) # Input for the quest
input_3 = db.Column(db.Text, nullable=True) # Input for the quest
input_4 = db.Column(db.Text, nullable=True) # Input for the quest
input_5 = db.Column(db.Text, nullable=True) # Input for the quest
input_6 = db.Column(db.Text, nullable=True) # Input for the quest
input_7 = db.Column(db.Text, nullable=True) # Input for the quest
input_8 = db.Column(db.Text, nullable=True) # Input for the quest
input_9 = db.Column(db.Text, nullable=True) # Input for the quest

# Quest outputs, where output_0 is the null test
output_0 = db.Column(db.Text, nullable=False) # Output for the quest
output_1 = db.Column(db.Text, nullable=True) # Output for the quest
output_2 = db.Column(db.Text, nullable=True) # Output for the quest
output_3 = db.Column(db.Text, nullable=True) # Output for the quest
output_4 = db.Column(db.Text, nullable=True) # Output for the quest
output_5 = db.Column(db.Text, nullable=True) # Output for the quest
output_6 = db.Column(db.Text, nullable=True) # Output for the quest
output_7 = db.Column(db.Text, nullable=True) # Output for the quest
output_8 = db.Column(db.Text, nullable=True) # Output for the quest
output_9 = db.Column(db.Text, nullable=True) # Output for the quest

example_solution = db.Column(
db.Text, nullable=True
) # Example solution for the quest
2 changes: 1 addition & 1 deletion backend/routes/auth_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ def login():
),
200,
)

# Tokens are stored in HttpOnly cookies — never exposed to JavaScript
set_access_cookies(response, access_token)
set_refresh_cookies(response, refresh_token)
Expand Down
Loading