Example #1
0
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")
Example #2
0
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')
Example #3
0
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")
Example #4
0
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')