text: from flask import Blueprint, request
  from db import cursor, connection
  from hierarchy import auth_required
  from user.info import format_user
  import time
  
  
  def format_user_list(user_ids, viewer=None):
      formatted_request_list = []
  
      for user_1_id in user_ids:
          formatted_request_list.append(format_user(user_1_id, viewer))
  
      return formatted_request_list
  
  
  requests = Blueprint('requests', __name__)
  
  
  @requests.route("/requests")
  @auth_required("user")
  def route(user_2_id):
      # get a list of friend requests
      request_list = cursor.execute(
          "select user_1_id from social where user_2_id = ? and type = \"outgoing\"",
          [user_2_id]
      ).fetchall()
  
      return {"requests": format_user_list([q[0] for q in request_list])}, 200
  
  
  friends = Blueprint('friends', __name__)
  
  
  @friends.route("/friends")
  @auth_required("user")
  def route(user_id):
      # get a list of friend requests
      request_list = cursor.execute(
          "select user_1_id, user_2_id from social where (user_1_id = ? or user_2_id = ?) and type = \"friendship\"",
          [user_id, user_id]
      ).fetchall()
  
      friend_id_list = [q[0] if q[1] == user_id else q[1] for q in request_list]
  
      return {"friends": format_user_list(friend_id_list)}, 200
  
  
  blocked = Blueprint('blocked', __name__)
  
  
  @blocked.route("/blocked")
  @auth_required("user")
  def route(user_id):
      # get a list of friend requests
      request_list = cursor.execute(
          "select user_2_id from social where user_1_id = ? and type = \"block\"",
          [user_id]
      ).fetchall()
  
      return {"blocked": format_user_list([q[0] for q in request_list])}, 200
  
  
  dynamic_routes = [
      ["/social/list", requests], ["/social/list", friends],
      ["/social/list", blocked]
  ]
  