From b61d06b582e99005cf5a17b26683fe906387b7c6 Mon Sep 17 00:00:00 2001
From: mtrela <mtrela@syncad.com>
Date: Mon, 2 Nov 2020 14:34:02 +0100
Subject: [PATCH] Unnecessary methods `load_posts`, `load_posts_keyed` are
 removed

---
 hive/server/bridge_api/methods.py      |  2 +-
 hive/server/bridge_api/objects.py      | 93 --------------------------
 hive/server/condenser_api/get_state.py |  2 -
 hive/server/condenser_api/methods.py   |  1 -
 hive/server/condenser_api/objects.py   | 89 ------------------------
 5 files changed, 1 insertion(+), 186 deletions(-)

diff --git a/hive/server/bridge_api/methods.py b/hive/server/bridge_api/methods.py
index fcb42bc8f..ff6908821 100644
--- a/hive/server/bridge_api/methods.py
+++ b/hive/server/bridge_api/methods.py
@@ -1,7 +1,7 @@
 """Bridge API public endpoints for posts"""
 
 import hive.server.bridge_api.cursor as cursor
-from hive.server.bridge_api.objects import load_posts, load_profiles, _bridge_post_object, append_statistics_to_post
+from hive.server.bridge_api.objects import load_profiles, _bridge_post_object, append_statistics_to_post
 from hive.server.database_api.methods import find_votes_impl, VotesPresentation
 from hive.server.common.helpers import (
     return_error_info,
diff --git a/hive/server/bridge_api/objects.py b/hive/server/bridge_api/objects.py
index e2e9550fc..5c6fa3d1d 100644
--- a/hive/server/bridge_api/objects.py
+++ b/hive/server/bridge_api/objects.py
@@ -57,99 +57,6 @@ async def load_profiles(db, names):
     rows = await db.query_all(sql, names=tuple(names))
     return [_bridge_profile_object(row) for row in rows]
 
-async def load_posts_keyed(db, ids, truncate_body=0):
-    """Given an array of post ids, returns full posts objects keyed by id."""
-    # pylint: disable=too-many-locals
-    assert ids, 'no ids passed to load_posts_keyed'
-
-    # fetch posts and associated author reps
-    sql = """
-        SELECT
-            hp.id,
-            hp.author,
-            hp.parent_author,
-            hp.author_rep,
-            hp.root_title,
-            hp.beneficiaries,
-            hp.max_accepted_payout,
-            hp.percent_hbd,
-            hp.url,
-            hp.permlink,
-            hp.parent_permlink_or_category,
-            hp.title,
-            hp.body,
-            hp.category,
-            hp.depth,
-            hp.promoted,
-            hp.payout,
-            hp.pending_payout,
-            hp.payout_at,
-            hp.is_paidout,
-            hp.children,
-            hp.votes,
-            hp.created_at,
-            hp.updated_at,
-            hp.rshares,
-            hp.abs_rshares,
-            hp.json,
-            hp.is_hidden,
-            hp.is_grayed,
-            hp.total_votes,
-            hp.sc_trend,
-            hp.role_title,
-            hp.community_title,
-            hp.role_id,
-            hp.is_pinned,
-            hp.curator_payout_value
-        FROM hive_posts_view hp
-        WHERE hp.id IN :ids
-    """
-    result = await db.query_all(sql, ids=tuple(ids))
-
-    # TODO: author affiliation?
-    posts_by_id = {}
-    for row in result:
-        row = dict(row)
-
-        post = _bridge_post_object(row, truncate_body=truncate_body)
-        post['active_votes'] = await find_votes_impl(db, row['author'], row['permlink'], VotesPresentation.BridgeApi)
-        append_statistics_to_post(post, row, row['is_pinned'], None, True)
-
-        posts_by_id[row['id']] = post
-
-    return posts_by_id
-
-async def load_posts(db, ids, truncate_body=0):
-    """Given an array of post ids, returns full objects in the same order."""
-    if not ids:
-        return []
-
-    # posts are keyed by id so we can return output sorted by input order
-    posts_by_id = await load_posts_keyed(db, ids, truncate_body=truncate_body)
-
-    # in rare cases of cache inconsistency, recover and warn
-    missed = set(ids) - posts_by_id.keys()
-    if missed:
-        log.info("get_posts do not exist in cache: %s", repr(missed))
-        for _id in missed:
-            ids.remove(_id)
-            sql = """
-                SELECT
-                    hp.id, ha_a.name as author, hpd_p.permlink as permlink, hp.depth, hp.created_at
-                FROM
-                    hive_posts hp
-                INNER JOIN hive_accounts ha_a ON ha_a.id = hp.author_id
-                INNER JOIN hive_permlink_data hpd_p ON hpd_p.id = hp.permlink_id
-                WHERE hp.id = :id """
-            post = await db.query_row(sql, id=_id)
-            if post is None:
-                # TODO: This should never happen. See #173 for analysis
-                log.error("missing post: id %i", _id)
-            else:
-                log.info("requested deleted post: %s", dict(post))
-
-    return [posts_by_id[_id] for _id in ids]
-
 def _bridge_profile_object(row):
     """Convert an internal account record into legacy-steemd style."""
 
diff --git a/hive/server/condenser_api/get_state.py b/hive/server/condenser_api/get_state.py
index 9c475c56f..88d2fb7ea 100644
--- a/hive/server/condenser_api/get_state.py
+++ b/hive/server/condenser_api/get_state.py
@@ -11,8 +11,6 @@ from hive.server.common.mutes import Mutes
 
 from hive.server.condenser_api.objects import (
     load_accounts,
-    load_posts,
-    load_posts_keyed,
     _mute_votes,
     _condenser_post_object)
 from hive.server.common.helpers import (
diff --git a/hive/server/condenser_api/methods.py b/hive/server/condenser_api/methods.py
index 5d58fb174..1afd95d41 100644
--- a/hive/server/condenser_api/methods.py
+++ b/hive/server/condenser_api/methods.py
@@ -2,7 +2,6 @@
 from functools import wraps
 
 import hive.server.condenser_api.cursor as cursor
-from hive.server.condenser_api.objects import load_posts
 from hive.server.condenser_api.objects import _mute_votes, _condenser_post_object
 from hive.server.common.helpers import (
     ApiError,
diff --git a/hive/server/condenser_api/objects.py b/hive/server/condenser_api/objects.py
index 607c3402c..49d0a69e4 100644
--- a/hive/server/condenser_api/objects.py
+++ b/hive/server/condenser_api/objects.py
@@ -19,100 +19,11 @@ async def load_accounts(db, names, lite = False):
     rows = await db.query_all(sql, names=tuple(names))
     return [_condenser_account_object(row) for row in rows]
 
-async def load_posts_keyed(db, ids, truncate_body=0):
-    """Given an array of post ids, returns full posts objects keyed by id."""
-    assert ids, 'no ids passed to load_posts_keyed'
-
-    # fetch posts and associated author reps
-    sql = """
-    SELECT hp.id,
-        hp.author,
-        hp.author_rep,
-        hp.permlink,
-        hp.title,
-        hp.body,
-        hp.category,
-        hp.depth,
-        hp.promoted,
-        hp.payout,
-        hp.pending_payout,
-        hp.payout_at,
-        hp.is_paidout,
-        hp.children,
-        hp.votes,
-        hp.created_at,
-        hp.updated_at,
-        hp.rshares,
-        hp.json as json,
-        hp.is_hidden,
-        hp.is_grayed,
-        hp.total_votes,
-        hp.parent_author,
-        hp.parent_permlink_or_category,
-        hp.curator_payout_value,
-        hp.root_author,
-        hp.root_permlink,
-        hp.max_accepted_payout,
-        hp.percent_hbd,
-        hp.allow_replies,
-        hp.allow_votes,
-        hp.allow_curation_rewards,
-        hp.beneficiaries,
-        hp.url,
-        hp.root_title
-    FROM hive_posts_view hp
-    WHERE hp.id IN :ids"""
-
-    result = await db.query_all(sql, ids=tuple(ids))
-
-    muted_accounts = Mutes.all()
-    posts_by_id = {}
-    for row in result:
-        row = dict(row)
-        post = _condenser_post_object(row, truncate_body=truncate_body)
-
-        post['active_votes'] = await find_votes_impl(db, row['author'], row['permlink'], VotesPresentation.CondenserApi)
-        post['active_votes'] = _mute_votes(post['active_votes'], muted_accounts)
-        posts_by_id[row['id']] = post
-
-    return posts_by_id
-
 def _mute_votes(votes, muted_accounts):
     if not muted_accounts:
         return votes
     return [v for v in votes if v['voter'] not in muted_accounts]
 
-async def load_posts(db, ids, truncate_body=0):
-    """Given an array of post ids, returns full objects in the same order."""
-    if not ids:
-        return []
-
-    # posts are keyed by id so we can return output sorted by input order
-    posts_by_id = await load_posts_keyed(db, ids, truncate_body=truncate_body)
-
-    # in rare cases of cache inconsistency, recover and warn
-    missed = set(ids) - posts_by_id.keys()
-    if missed:
-        log.info("get_posts do not exist in cache: %s", repr(missed))
-        for _id in missed:
-            ids.remove(_id)
-            sql = """
-                SELECT
-                    hp.id, ha_a.name as author, hpd_p.permlink as permlink, hp.depth, hp.created_at
-                FROM
-                    hive_posts hp
-                INNER JOIN hive_accounts ha_a ON ha_a.id = hp.author_id
-                INNER JOIN hive_permlink_data hpd_p ON hpd_p.id = hp.permlink_id
-                WHERE hp.id = :id """
-            post = await db.query_row(sql, id=_id)
-            if post is None:
-                # TODO: This should never happen. See #173 for analysis
-                log.error("missing post: id %i", _id)
-            else:
-                log.info("requested deleted post: %s", dict(post))
-
-    return [posts_by_id[_id] for _id in ids]
-
 def _condenser_account_object(row):
     """Convert an internal account record into legacy-steemd style."""
     #The member `vote_weight` from `hive_accounts` is removed, so currently the member `net_vesting_shares` is equals to zero.
-- 
GitLab