Browse Source

Merge branch 'api-nonnull-properties' into 'develop-1.101'

Mark some API properties as nonnull

See merge request tildes/tildes!167
merge-requests/167/merge
talklittle 2 months ago
parent
commit
db7b9c60cc
  1. 5
      tildes/openapi_beta.yaml
  2. 2
      tildes/tildes/models/topic/topic_query.py
  3. 26
      tildes/tildes/views/api/beta/topic.py

5
tildes/openapi_beta.yaml

@ -316,13 +316,10 @@ components:
nullable: true
voted:
type: boolean
nullable: true
bookmarked:
type: boolean
nullable: true
ignored:
type: boolean
nullable: true
official:
type: boolean
tags:
@ -390,10 +387,8 @@ components:
nullable: true
voted:
type: boolean
nullable: true
bookmarked:
type: boolean
nullable: true
depth:
type: integer
children:

2
tildes/tildes/models/topic/topic_query.py

@ -142,7 +142,7 @@ class TopicQuery(PaginatedQuery):
topic.bookmark_created_time = None
topic.last_visit_time = None
topic.comments_since_last_visit = None
topic.user_bookmarked = None
topic.user_bookmarked = False
topic.user_ignored = False
else:
topic = result.Topic

26
tildes/tildes/views/api/beta/topic.py

@ -60,8 +60,7 @@ def get_topics(request: Request) -> dict: # noqa
# Parse parameters where necessary
try:
period = ShortTimePeriod(allow_none=True)
period = period.deserialize(period_raw)
period = ShortTimePeriod(allow_none=True).deserialize(period_raw)
except ValidationError as exc:
return build_error_response(str(exc), field="period")
@ -128,11 +127,10 @@ def get_topic(request: Request) -> dict:
f"Invalid order value: {comment_order_raw}",
field="order",
)
elif request.user and request.user.comment_sort_order_default:
comment_order = request.user.comment_sort_order_default
else:
if request.user and request.user.comment_sort_order_default:
comment_order = request.user.comment_sort_order_default
else:
comment_order = CommentTreeSortOption.RELEVANCE
comment_order = CommentTreeSortOption.RELEVANCE
try:
topic_id = id36_to_id(topic_id36)
@ -157,15 +155,17 @@ def get_topic(request: Request) -> dict:
tree = CommentTree(comments, comment_order, request.user)
tree.collapse_from_labels()
if request.user:
# collapse old comments if the user has a previous visit to the topic
# (and doesn't have that behavior disabled)
if topic.last_visit_time and request.user.collapse_old_comments:
tree.uncollapse_new_comments(topic.last_visit_time)
tree.finalize_collapsing_maximized()
# collapse old comments if the user has a previous visit to the topic
# (and doesn't have that behavior disabled)
if request.user and topic.last_visit_time and request.user.collapse_old_comments:
tree.uncollapse_new_comments(topic.last_visit_time)
tree.finalize_collapsing_maximized()
commentsjson = comment_subtree_to_dict(request, tree.tree)
# Construct the final response JSON object
response = {"topic": topic_to_dict(topic), "comments": commentsjson}
response = {
"topic": topic_to_dict(topic),
"comments": commentsjson,
}
return response
Loading…
Cancel
Save