Skip to content

Commit

Permalink
Merge pull request #77 from PCS-Poli-USP/fix/prod-bugs
Browse files Browse the repository at this point in the history
Fix/prod bugs
  • Loading branch information
gdvcamargo authored Jan 19, 2025
2 parents dfbcffc + 8d23e31 commit 1808d93
Show file tree
Hide file tree
Showing 8 changed files with 160 additions and 82 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Create Date: 2024-11-29 02:20:58.666026
"""

from typing import Sequence, Union

from alembic import op
Expand All @@ -13,8 +14,8 @@


# revision identifiers, used by Alembic.
revision: str = '05154ca469fb'
down_revision: Union[str, None] = ('4abbc03d3542', '64a70f848243')
revision: str = "05154ca469fb"
down_revision: Union[str, None] = ("4abbc03d3542", "64a70f848243")
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None

Expand Down
12 changes: 8 additions & 4 deletions migrations/versions/4abbc03d3542_remove_cognito_id.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Create Date: 2024-10-21 10:20:36.125454
"""

from typing import Sequence, Union

from alembic import op
Expand All @@ -13,19 +14,22 @@


# revision identifiers, used by Alembic.
revision: str = '4abbc03d3542'
down_revision: Union[str, None] = '57a9e9d23571'
revision: str = "4abbc03d3542"
down_revision: Union[str, None] = "57a9e9d23571"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_column('user', 'cognito_id')
op.drop_column("user", "cognito_id")
# ### end Alembic commands ###


def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('user', sa.Column('cognito_id', sa.VARCHAR(), autoincrement=False, nullable=False))
op.add_column(
"user",
sa.Column("cognito_id", sa.VARCHAR(), autoincrement=False, nullable=False),
)
# ### end Alembic commands ###
15 changes: 9 additions & 6 deletions migrations/versions/57a9e9d23571_remove_username_column.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Create Date: 2024-10-21 09:58:50.762272
"""

from typing import Sequence, Union

from alembic import op
Expand All @@ -13,21 +14,23 @@


# revision identifiers, used by Alembic.
revision: str = '57a9e9d23571'
down_revision: Union[str, None] = 'ee57778bea39'
revision: str = "57a9e9d23571"
down_revision: Union[str, None] = "ee57778bea39"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index('ix_user_username', table_name='user')
op.drop_column('user', 'username')
op.drop_index("ix_user_username", table_name="user")
op.drop_column("user", "username")
# ### end Alembic commands ###


def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.add_column('user', sa.Column('username', sa.VARCHAR(), autoincrement=False, nullable=False))
op.create_index('ix_user_username', 'user', ['username'], unique=True)
op.add_column(
"user", sa.Column("username", sa.VARCHAR(), autoincrement=False, nullable=False)
)
op.create_index("ix_user_username", "user", ["username"], unique=True)
# ### end Alembic commands ###
121 changes: 80 additions & 41 deletions migrations/versions/ee57778bea39_classroom_solicitation_feature.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
Create Date: 2024-11-29 02:14:13.082106
"""

from typing import Sequence, Union

from alembic import op
Expand All @@ -13,57 +14,95 @@


# revision identifiers, used by Alembic.
revision: str = 'ee57778bea39'
down_revision: Union[str, None] = '3c251cc63118'
revision: str = "ee57778bea39"
down_revision: Union[str, None] = "3c251cc63118"
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None


def upgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.create_table('classroomsolicitation',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('classroom_id', sa.Integer(), nullable=True),
sa.Column('required_classroom', sa.Boolean(), nullable=False),
sa.Column('building_id', sa.Integer(), nullable=False),
sa.Column('user_id', sa.Integer(), nullable=False),
sa.Column('reservation_id', sa.Integer(), nullable=True),
sa.Column('reason', sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column('reservation_title', sqlmodel.sql.sqltypes.AutoString(), nullable=False),
sa.Column('reservation_type', sa.Enum('EXAM', 'MEETING', 'EVENT', 'OTHER', name='reservationtype'), nullable=False),
sa.Column('dates', sa.ARRAY(sa.Date()), nullable=True),
sa.Column('start_time', sa.Time(), nullable=True),
sa.Column('end_time', sa.Time(), nullable=True),
sa.Column('capacity', sa.Integer(), nullable=False),
sa.Column('approved', sa.Boolean(), nullable=False),
sa.Column('denied', sa.Boolean(), nullable=False),
sa.Column('closed', sa.Boolean(), nullable=False),
sa.Column('closed_by', sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column('created_at', sa.DateTime(), nullable=False),
sa.Column('updated_at', sa.DateTime(), nullable=False),
sa.CheckConstraint('(classroom_id IS NOT NULL) OR (required_classroom = FALSE)', name='check_required_classroom_with_classroom_id_not_null'),
sa.ForeignKeyConstraint(['building_id'], ['building.id'], ),
sa.ForeignKeyConstraint(['classroom_id'], ['classroom.id'], ),
sa.ForeignKeyConstraint(['reservation_id'], ['reservation.id'], ),
sa.ForeignKeyConstraint(['user_id'], ['user.id'], ),
sa.PrimaryKeyConstraint('id')
op.create_table(
"classroomsolicitation",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("classroom_id", sa.Integer(), nullable=True),
sa.Column("required_classroom", sa.Boolean(), nullable=False),
sa.Column("building_id", sa.Integer(), nullable=False),
sa.Column("user_id", sa.Integer(), nullable=False),
sa.Column("reservation_id", sa.Integer(), nullable=True),
sa.Column("reason", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column(
"reservation_title", sqlmodel.sql.sqltypes.AutoString(), nullable=False
),
sa.Column(
"reservation_type",
sa.Enum("EXAM", "MEETING", "EVENT", "OTHER", name="reservationtype"),
nullable=False,
),
sa.Column("dates", sa.ARRAY(sa.Date()), nullable=True),
sa.Column("start_time", sa.Time(), nullable=True),
sa.Column("end_time", sa.Time(), nullable=True),
sa.Column("capacity", sa.Integer(), nullable=False),
sa.Column("approved", sa.Boolean(), nullable=False),
sa.Column("denied", sa.Boolean(), nullable=False),
sa.Column("closed", sa.Boolean(), nullable=False),
sa.Column("closed_by", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
sa.Column("created_at", sa.DateTime(), nullable=False),
sa.Column("updated_at", sa.DateTime(), nullable=False),
sa.CheckConstraint(
"(classroom_id IS NOT NULL) OR (required_classroom = FALSE)",
name="check_required_classroom_with_classroom_id_not_null",
),
sa.ForeignKeyConstraint(
["building_id"],
["building.id"],
),
sa.ForeignKeyConstraint(
["classroom_id"],
["classroom.id"],
),
sa.ForeignKeyConstraint(
["reservation_id"],
["reservation.id"],
),
sa.ForeignKeyConstraint(
["user_id"],
["user.id"],
),
sa.PrimaryKeyConstraint("id"),
)
op.add_column(
"reservation",
sa.Column("title", sqlmodel.sql.sqltypes.AutoString(), nullable=False),
)
op.add_column(
"reservation",
sa.Column("reason", sqlmodel.sql.sqltypes.AutoString(), nullable=True),
)
op.drop_constraint(
"unique_reservation_name_for_classroom", "reservation", type_="unique"
)
op.add_column('reservation', sa.Column('title', sqlmodel.sql.sqltypes.AutoString(), nullable=False))
op.add_column('reservation', sa.Column('reason', sqlmodel.sql.sqltypes.AutoString(), nullable=True))
op.drop_constraint('unique_reservation_name_for_classroom', 'reservation', type_='unique')
op.drop_column('reservation', 'description')
op.drop_column('reservation', 'name')
op.create_index(op.f('ix_user_email'), 'user', ['email'], unique=True)
op.drop_column("reservation", "description")
op.drop_column("reservation", "name")
op.create_index(op.f("ix_user_email"), "user", ["email"], unique=True)
# ### end Alembic commands ###


def downgrade() -> None:
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index(op.f('ix_user_email'), table_name='user')
op.add_column('reservation', sa.Column('name', sa.VARCHAR(), autoincrement=False, nullable=False))
op.add_column('reservation', sa.Column('description', sa.VARCHAR(), autoincrement=False, nullable=True))
op.create_unique_constraint('unique_reservation_name_for_classroom', 'reservation', ['name', 'classroom_id'])
op.drop_column('reservation', 'reason')
op.drop_column('reservation', 'title')
op.drop_table('classroomsolicitation')
op.drop_index(op.f("ix_user_email"), table_name="user")
op.add_column(
"reservation",
sa.Column("name", sa.VARCHAR(), autoincrement=False, nullable=False),
)
op.add_column(
"reservation",
sa.Column("description", sa.VARCHAR(), autoincrement=False, nullable=True),
)
op.create_unique_constraint(
"unique_reservation_name_for_classroom", "reservation", ["name", "classroom_id"]
)
op.drop_column("reservation", "reason")
op.drop_column("reservation", "title")
op.drop_table("classroomsolicitation")
# ### end Alembic commands ###
4 changes: 2 additions & 2 deletions server/repositories/forum_repository.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ def get_all_posts(
select(ForumPost)
.where(
col(ForumPost.subject_id) == subject_id,
col(ForumPost.enabled) == True,
ForumPost.content.ilike(search_term),
col(ForumPost.enabled) == True, # noqa: E712
ForumPost.content.ilike(search_term), # type: ignore
)
.order_by(col(ForumPost.created_at).desc())
)
Expand Down
18 changes: 12 additions & 6 deletions server/scripts/dumps/filter.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import csv


# Função para processar e converter o dump para CSV
def dump_to_csv(dump_file: str, csv_file: str) -> None:
with open(dump_file, 'r', encoding='utf-8') as file: # noqa: UP015
with open(dump_file, "r", encoding="utf-8") as file: # noqa: UP015
lines = file.readlines()

# Aqui você pode ajustar a lógica para filtrar os dados de interesse
Expand All @@ -26,19 +27,24 @@ def dump_to_csv(dump_file: str, csv_file: str) -> None:
# Limpa a linha de qualquer excesso de espaços ou caracteres desnecessários
cleaned_line = line.strip()
if cleaned_line: # Só adiciona linhas não vazias
data.append(cleaned_line.split('\t')) # Divide por tabulação
data.append(cleaned_line.split("\t")) # Divide por tabulação

# Escreve os dados no arquivo CSV
with open(csv_file, 'w', newline='', encoding='utf-8') as csvfile:
with open(csv_file, "w", newline="", encoding="utf-8") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["id", "name", "created_by_id", "updated_at"]) # Cabeçalhos do CSV
writer.writerow(
["id", "name", "created_by_id", "updated_at"]
) # Cabeçalhos do CSV
writer.writerows(data) # Escreve as linhas de dados

print(f"Dados salvos no CSV: {csv_file}")


# Caminho dos arquivos
dump_file = 'dump-uspolis-202411071451.sql' # Substitua com o nome do seu arquivo de dump
csv_file = 'classroom.csv' # Nome do arquivo CSV que será gerado
dump_file = (
"dump-uspolis-202411071451.sql" # Substitua com o nome do seu arquivo de dump
)
csv_file = "classroom.csv" # Nome do arquivo CSV que será gerado

# Chama a função para converter o dump para CSV
dump_to_csv(dump_file, csv_file)
26 changes: 26 additions & 0 deletions server/scripts/dumps/fix_dump.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
from sqlalchemy import text
from sqlmodel import Session, create_engine
from server.config import CONFIG

# Configure sua conexão com o banco de dados
engine = create_engine(f"{CONFIG.db_uri}/{CONFIG.db_database}")


# Função para atualizar a sequência
def update_sequence(table_name: str, column_name: str) -> None:
with Session(engine) as session:
session.execute(
text(f"""
SELECT setval(
pg_get_serial_sequence(:table_name, :column_name),
(SELECT MAX({column_name}) FROM {table_name}) + 1,
false
)
"""),
{"table_name": table_name, "column_name": column_name}
)
session.commit()

# Atualize as tabelas necessárias
update_sequence("buildings", "id")
update_sequence("classrooms", "id")
41 changes: 20 additions & 21 deletions server/scripts/dumps/load_csv.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,27 +53,26 @@ def load_csv_to_db(csv_file: str) -> None:
# session.add(building)

# Caso você tenha uma tabela Classroom também no CSV
if True:
classroom = classroom_db_model.Classroom(
name=row["name"], # type: ignore
capacity=row["capacity"], # type: ignore
floor=row["floor"], # type: ignore
ignore_to_allocate=True
if row["ignore_to_allocate"] == "t"
else False, # type: ignore
accessibility=True
if row["accessibility"] == "t"
else False, # type: ignore
projector=True if row["projector"] == "t" else False, # type: ignore
air_conditioning=True
if row["air_conditioning"] == "t"
else False, # type: ignore
updated_at=row["updated_at"], # type: ignore
created_by_id=1, # type: ignore
building_id=row["building_id"], # type: ignore
id=row["id"], # type: ignore
)
session.add(classroom)
classroom = classroom_db_model.Classroom(
name=row["name"], # type: ignore
capacity=row["capacity"], # type: ignore
floor=row["floor"], # type: ignore
ignore_to_allocate=True
if row["ignore_to_allocate"] == "t"
else False, # type: ignore
accessibility=True
if row["accessibility"] == "t"
else False, # type: ignore
projector=True if row["projector"] == "t" else False, # type: ignore
air_conditioning=True
if row["air_conditioning"] == "t"
else False, # type: ignore
updated_at=row["updated_at"], # type: ignore
created_by_id=1, # type: ignore
building_id=row["building_id"], # type: ignore
id=row["id"], # type: ignore
)
session.add(classroom)

# Commit para salvar todas as instâncias no banco
session.commit()
Expand Down

0 comments on commit 1808d93

Please sign in to comment.