def cafes_list(request, oauth_params): r""" **/cafes/list** 검색된 카페 리스트 및 질의 조건을 반환 method * GET * oauth required parameter * q (default=""): 카페를 검색할 검색어 note * q를 입력하지 않으면 모든 카페를 반환한다. example * request .. parsed-literal:: GET /cafes/list HTTP/1.1 * response (검색된 카페가 있는 경우) .. parsed-literal:: HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 { "cafes": [ { "cafe_name": "기획총무부", "no": 9, "admin": "hyojeong28", "board_list": [ "board_part_plan", "board_part_plan_records", "photo_part_plan" ], "description": "<font face = \"돋움\">\r\n<strong><font color=#FF0000>컴</font>...(생략)", "category": "학생자치", "cafe_id": "cafe_part_plan", "member_list": [ "gochi" ] }, ... { "cafe_name": "선배와의 대화", "no": 62, "admin": "gufrend", "board_list": [ "board_cafe_present", "photo_cafe_present" ], "description": "", "category": "인문사회", "cafe_id": "cafe_present", "member_list": [ "jeppy" ] } ], "listinfo": { "q": "", "total_cafes": 5, "total_matched_cafes": 5 } } * response (검색된 카페가 없는 경우) .. parsed-literal:: { "cafes": [], "listinfo": { "q": "", "total_cafes": 5, "total_matched_cafes": 0 } } """ q = "" # get request parameter if request.GET.has_key("q"): q = request.GET["q"] # get cafe list listinfo, cafes = Cafe.get_list(q) ret_item = {"listinfo": listinfo, "cafes": cafes} ret = dumps(ret_item) return HttpResponse(ret, content_type="application/json")
def cafes_list(request, oauth_params): r""" **/cafes/list** 검색된 카페 리스트 및 질의 조건을 반환 method * GET * oauth required parameter * q (default=""): 카페를 검색할 검색어 note * q를 입력하지 않으면 모든 카페를 반환한다. example * request .. parsed-literal:: GET /cafes/list HTTP/1.1 * response (검색된 카페가 있는 경우) .. parsed-literal:: HTTP/1.0 200 OK Content-Type: application/json; charset=utf-8 { "cafes": [ { "cafe_name": "기획총무부", "no": 9, "admin": "hyojeong28", "board_list": [ "board_part_plan", "board_part_plan_records", "photo_part_plan" ], "description": "<font face = \"돋움\">\r\n<strong><font color=#FF0000>컴</font>...(생략)", "category": "학생자치", "cafe_id": "cafe_part_plan", "member_list": [ "gochi" ] }, ... { "cafe_name": "선배와의 대화", "no": 62, "admin": "gufrend", "board_list": [ "board_cafe_present", "photo_cafe_present" ], "description": "", "category": "인문사회", "cafe_id": "cafe_present", "member_list": [ "jeppy" ] } ], "listinfo": { "q": "", "total_cafes": 5, "total_matched_cafes": 5 } } * response (검색된 카페가 없는 경우) .. parsed-literal:: { "cafes": [], "listinfo": { "q": "", "total_cafes": 5, "total_matched_cafes": 0 } } """ q = "" # get request parameter if request.GET.has_key('q'): q = request.GET['q'] # get cafe list listinfo, cafes = Cafe.get_list(q) ret_item = {'listinfo': listinfo, 'cafes': cafes} ret = dumps(ret_item) 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')