Skip to content

Conversation

Temmmmmo
Copy link
Member

Изменения

Детали реализации

Check-List

  • Вы проверили свой код перед отправкой запроса?
  • Вы написали тесты к реализованным функциям?
  • Вы не забыли применить форматирование black и isort для Back-End или Prettier для Front-End?

Copy link

💩 Code linting failed, use black and isort to fix it.

Copy link

💩 Code linting failed, use black and isort to fix it.

Copy link

💩 Code linting failed, use black and isort to fix it.

Copy link

💩 Code linting failed, use black and isort to fix it.

super().__init__(eng)


class ObjectNotFound(RatingAPIError):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Конструктор класса не инициализирует базовый класс

@classmethod
def delete(cls, id: int | str, *, session: Session) -> None:
"""Soft delete object if possible, else hard delete"""
obj = cls.get(id, session=session)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Логическая ошибка в обновлении атрибутов объекта**

if not with_deleted and hasattr(cls, "is_deleted"):
objs = objs.filter(not_(cls.is_deleted))
try:
if hasattr(cls, "uuid"):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Логическая ошибка в методе удаления объекта**

if not with_deleted and hasattr(cls, "is_deleted"):
objs = objs.filter(not_(cls.is_deleted))
try:
if hasattr(cls, "uuid"):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[СТИЛЬ] Избыточный вывод информации**

# raise ForbiddenSymbol()

# Сначала добавляем с user_id, который мы получили при авторизации,
# в LecturerUserComment, чтобы нельзя было слишком быстро добавлять комментарии

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Закомментированный код проверки на запрещенные символы

# Обрабатываем анонимность комментария, и удаляем этот флаг чтобы добавить запись в БД
user_id = None if comment_info.is_anonymous else user.get('id')

new_comment = Comment.create(

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[УЛУЧШЕНИЕ] Удаление параметра session из вызова метода create

if response.status == 300:
user_achievements = await response.json()
for achievement in user_achievements.get("achievement", []):
if achievement.get("id") == settings.FIRST_COMMENT_ACHIEVEMENT_ID:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Изменение статуса ответа с 200 на 300


@app.exception_handler(ObjectNotFound)
@app.exception_handler(AlreadyExists)
async def not_found_handler(req: starlette.requests.Request, exc: ObjectNotFound):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Несоответствие типа исключения и обработчика


@app.exception_handler(ObjectNotFound)
@app.exception_handler(AlreadyExists)
async def not_found_handler(req: starlette.requests.Request, exc: ObjectNotFound):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[УЛУЧШЕНИЕ] Использование неправильного статуса ответа

text: str
mark_kindness: int
mark_freebie: int
mark_clarity: int

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[СТИЛЬ] Отсутствует документация класса

super().__init__(eng)


class ObjectNotFound(RatingAPIError):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Удалено сообщение об ошибке

else:
session.delete(obj)
print(cls.id, cls.session, session)
session.flush()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Неправильное использование метода setattr

if not with_deleted and hasattr(cls, "is_deleted"):
objs = objs.filter(not_(cls.is_deleted))
try:
if hasattr(cls, "uuid"):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Удаление объекта из сессии не выполняется

if not with_deleted and hasattr(cls, "is_deleted"):
objs = objs.filter(not_(cls.is_deleted))
try:
if hasattr(cls, "uuid"):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[СТИЛЬ] Лишний вывод в консоль

settings.COMMENT_LECTURER_FREQUENCE_IN_MONTH, settings.COMMENT_TO_LECTURER_LIMIT
)

if len(comment_info.text) > settings.MAX_COMMENT_LENGTH:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Проверка на запрещенные символы закомментирована

settings.COMMENT_LECTURER_FREQUENCE_IN_MONTH, settings.COMMENT_TO_LECTURER_LIMIT
)

if len(comment_info.text) > settings.MAX_COMMENT_LENGTH:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[ВАЖНО] Удаление параметра session при создании комментария

async with session.get(
settings.API_URL + f"achievement/user/{user.get('id'):}",
headers={"Accept": "application/json"},
) as response:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Неправильная проверка статуса ответа



@app.exception_handler(ObjectNotFound)
@app.exception_handler(AlreadyExists)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[КРИТИЧНО] Несоответствие типа исключения


@app.exception_handler(ObjectNotFound)
@app.exception_handler(AlreadyExists)
async def not_found_handler(req: starlette.requests.Request, exc: ObjectNotFound):

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[СТИЛЬ] Неправильный статус кода

update_ts: datetime.datetime
subject: str | None = None
text: str
mark_kindness: int

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[УЛУЧШЕНИЕ] Удаление полей без комментария

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant