server: slightly better way of prev/next

This commit is contained in:
noirscape 2023-01-04 20:53:09 +01:00
parent a028b4ee6e
commit 0cc8407d76

View file

@ -979,23 +979,21 @@ def get_pools_nearby(
for pool in pools: for pool in pools:
prev_post_id = None prev_post_id = None
next_post_id = None next_post_id = None
break_loop = False first_post_id = pool.posts[0].post_id,
last_post_id = pool.posts[-1].post_id,
for pool_post in pool.posts:
next_post_id = pool_post.post_id
if break_loop == True:
break
for idx, pool_post in enumerate(pool.posts):
if post.post_id == pool_post.post_id: if post.post_id == pool_post.post_id:
break_loop = True if post.post_id != first_post_id:
prev_post_id = pool.posts[idx-1].post_id
prev_post_id = pool_post.post_id if post.post_id != last_post_id:
next_post_id = pool.posts[idx+1].post_id
break
resp_entry = PoolPostsNearby( resp_entry = PoolPostsNearby(
pool=pool, pool=pool,
first_post=pool.posts[0].post_id, first_post=first_post_id,
last_post=pool.posts[-1].post_id, last_post=last_post_id,
prev_post=prev_post_id, prev_post=prev_post_id,
next_post=next_post_id, next_post=next_post_id,
) )
@ -1007,7 +1005,7 @@ def serialize_pool_posts_nearby(
) -> Optional[rest.Response]: ) -> Optional[rest.Response]:
return [ return [
{ {
"pool": pools.serialize_pool(entry.pool), "pool": pools.serialize_micro_pool(entry.pool),
"firstPost": serialize_micro_post(try_get_post_by_id(entry.first_post), None), "firstPost": serialize_micro_post(try_get_post_by_id(entry.first_post), None),
"lastPost": serialize_micro_post(try_get_post_by_id(entry.last_post), None), "lastPost": serialize_micro_post(try_get_post_by_id(entry.last_post), None),
"prevPost": serialize_micro_post(try_get_post_by_id(entry.prev_post), None), "prevPost": serialize_micro_post(try_get_post_by_id(entry.prev_post), None),