def favorites_list(request, oauth_params): r""" **/favorites/list** 즐겨찾는 게시판(board_id) 및 우선순위 조회 method * GET * oauth required example * request .. parsed-literal:: GET /favorites/list HTTP/1.1 * response (성공) .. parsed-literal:: HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 [ { "priority": 1, "board_id": "board_part_plan", "no": 413 }, { "priority": 2, "board_id": "board_alumni99", "no": 416 }, { "priority": 3, "board_id": "board_dongneteam", "no": 1243 }, { "priority": 4, "board_id": "board_csesa", "no": 4684 } ] """ try: oauth_token = oauth_params["oauth_token"] except KeyError as e: raise AuthError(e) try: user_id = Token.get_user_id(oauth_token) except ObjectDoesNotExist as e: raise ParameterIsNotValid(e) favorites = Favorite.get_by_user(user_id) ret = dumps(favorites) return HttpResponse(ret, content_type="application/json")
def favorites_list(request, oauth_params): r""" **/favorites/list** 즐겨찾는 게시판(board_id) 및 우선순위 조회 method * GET * oauth required example * request .. parsed-literal:: GET /favorites/list HTTP/1.1 * response (성공) .. parsed-literal:: HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 [ { "priority": 1, "board_id": "board_part_plan", "no": 413 }, { "priority": 2, "board_id": "board_alumni99", "no": 416 }, { "priority": 3, "board_id": "board_dongneteam", "no": 1243 }, { "priority": 4, "board_id": "board_csesa", "no": 4684 } ] """ try: oauth_token = oauth_params['oauth_token'] except KeyError as e: raise AuthError(e) try: user_id = Token.get_user_id(oauth_token) except ObjectDoesNotExist as e: raise ParameterIsNotValid(e) favorites = Favorite.get_by_user(user_id) ret = dumps(favorites) return HttpResponse(ret, content_type='application/json')
def boards_favorite(request, oauth_params): r""" **/boards/favorite** 즐겨찾는 게시판 리스트 반환 method * GET * oauth required note * 즐겨찾는 게시판은 즐겨찾기 등록된 게시판 및 자유게시판과 가입한 cafe의 게시판을 포함한다. example * request (oauth parameter는 예제에서 생략) .. parsed-literal:: GET /boards/favorite HTTP/1.1 * response .. parsed-literal:: HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 [ { "board_id": "board_freeboard", "count": 10147, "description": "", "title": "자유게시판", "admin": "anjae83", "count24h": 0 }, ... { "board_id": "photo_part_plan", "count": 1670, "description": "", "title": "기획총무부 사진 게시판", "admin": "hyojeong28", "count24h": 0 } ] """ def join_list(list1, list2): return list1 + [item for item in list2 if item not in list1] oauth_token = oauth_params["oauth_token"] user_id = Token.get_user_id(oauth_token) # add default default_list = ["board_freeboard"] # add favorites favorites = Favorite.get_by_user(user_id) favorite_list = map(lambda x: x.get("board_id"), favorites) # add cafe cafe_board_list = [] cafe_boards = [Cafe.get_boards(cafe_id) for cafe_id in User.get_cafe(user_id)] if cafe_boards: cafe_board_list = reduce(lambda x, y: x + y, cafe_boards) # merge default, favorite, cafe list board_list = reduce(join_list, (default_list, favorite_list, cafe_board_list)) # get boards boards = filter(None, map(Board.get_or_none, board_list)) ret = dumps(boards) return HttpResponse(ret, content_type="application/json")
def boards_favorite(request, oauth_params): r""" **/boards/favorite** 즐겨찾는 게시판 리스트 반환 method * GET * oauth required note * 즐겨찾는 게시판은 즐겨찾기 등록된 게시판 및 자유게시판과 가입한 cafe의 게시판을 포함한다. example * request (oauth parameter는 예제에서 생략) .. parsed-literal:: GET /boards/favorite HTTP/1.1 * response .. parsed-literal:: HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 [ { "board_id": "board_freeboard", "count": 10147, "description": "", "title": "자유게시판", "admin": "anjae83", "count24h": 0 }, ... { "board_id": "photo_part_plan", "count": 1670, "description": "", "title": "기획총무부 사진 게시판", "admin": "hyojeong28", "count24h": 0 } ] """ def join_list(list1, list2): return list1 + [item for item in list2 if item not in list1] oauth_token = oauth_params['oauth_token'] user_id = Token.get_user_id(oauth_token) # add default default_list = ['board_freeboard'] # add favorites favorites = Favorite.get_by_user(user_id) favorite_list = map(lambda x: x.get('board_id'), favorites) # add cafe cafe_board_list = [] cafe_boards = [ Cafe.get_boards(cafe_id) for cafe_id in User.get_cafe(user_id) ] if cafe_boards: cafe_board_list = reduce(lambda x, y: x + y, cafe_boards) # merge default, favorite, cafe list board_list = reduce(join_list, (default_list, favorite_list, cafe_board_list)) # get boards boards = filter(None, map(Board.get_or_none, board_list)) ret = dumps(boards) return HttpResponse(ret, content_type='application/json')