示例#1
0
def admin_process_reply(request):
    if request.method == 'GET':
        # Read 작업 - 댓글 조회(관리자)
        if request.GET.get('code') != None:
            return admin_search_reply(request)
        else:
            return admin_read_all_reply()

    elif request.method == 'POST':
        # Create 작업 - 댓글 등록(관리자)
        member_info = get_member_info(request.COOKIES)
        reply_info = json.loads(request.body.decode('utf-8'))
        return create_reply(member_info, reply_info)
    elif request.method == 'PUT':
        # Update 작업 - 댓글 수정(관리자)
        member_info = get_member_info(request.COOKIES)
        reply_info = json.loads(request.body.decode('utf-8'))
        return admin_update_reply(member_info, reply_info)

    else:
        # Delete 작업 - 댓글 삭제(관리자)
        replies = json.loads(request.body.decode('utf-8'))
        replies = replies['reply']
        replies = replies['rows']
        return admin_delete_reply(replies)
示例#2
0
def user_process_reply(request):
    if request.method == 'GET':
        # Read 작업 - 댓글 조회(사용자) - 특정 게시글의 댓글을 조회한다
        if request.GET.get('post_id') != None:
            memberInfo = get_member_info(request.COOKIES)
            post_id = request.GET.get('post_id')
            return user_read_reply(memberInfo, post_id)

        elif request.GET.get('code') != None:
            return user_search_reply(request)

        else:
            return JsonResponse({'message': '필수정보 누락'}, status=489)

    elif request.method == 'POST':
        # Create 작업 - 댓글 등록(사용자)
        member_info = get_member_info(request.COOKIES)
        reply_info = json.loads(request.body.decode('utf-8'))
        return create_reply(member_info, reply_info)

    elif request.method == 'PUT':
        # Update 작업 - 댓글 수정(사용자)
        member_info = get_member_info(request.COOKIES)
        reply_info = json.loads(request.body.decode('utf-8'))
        return user_update_reply(member_info, reply_info)

    else:
        # Delete 작업 - 댓글 삭제(사용자)
        member_info = get_member_info(request.COOKIES)
        reply_info = json.loads(request.body.decode('utf-8'))
        return user_delete_reply(member_info, reply_info)
示例#3
0
    def process_response(self,request,response):
        #######   로그 남기기   #######
        field = self.get_code(request.path)
        print("필드 {}, 코드 {}".format(field,response.status_code))
        
        # 지정한 코드가 아닌경우 => 세계에서 약속된 코드인경우 detail은 존재하지 않음
        try:
            resultCode_detail = ResultCode.objects.get(field = field, code = response.status_code)
            code_detail = resultCode_detail.code_detail
        except:
            code_detail = ''
        
        url = request.path
        try:
            memberInfo = get_member_info(request.COOKIES)
            member = Member.objects.get(id = memberInfo['id'])
            create_log(request_ip=request.get_host(), request_method=request.method, url=url, result_code=response.status_code, result_code_detail=code_detail, requester=member)
        except Exception as e:
            create_log(request_ip=request.get_host(), request_method=request.method, url=url, result_code=response.status_code, result_code_detail=code_detail)
        ###############################

        #####  로그인 로그 남기기  #####
        isLogin = re.compile('.*member\/login\/')
        isLogin2 = re.compile('.*member\/admin\/login\/')
        if isLogin.match(url) or isLogin2.match(url):
            loginInfo = json.loads(request.body.decode('utf-8'))
            login_id = loginInfo['id']
            create_Login_log(requester_ip=request.get_host(),login_id=login_id,login_result=(True if response.status_code == 200 else False))
        ###############################

        return response 
示例#4
0
def report_post(request):
    if request.method == "POST":
        try:
            report_info = json.loads(request.body.decode('utf-8'))
            post_id = report_info['post_id']
            if (post_id == None):
                raise Exception("비정상적인 접근")
            text = report_info['text']
            if (text == None or len(text) < 5):
                raise Exception("신고 내용이 너무 짧습니다.")
            member_info = get_member_info(request.COOKIES)
            if (member_info == None):
                raise Exception("비정상적인 접근")

            report_writer = Member.objects.get(id=member_info['id'])
            post = Post.objects.get(post_id=post_id)
            if (post == None):
                raise Exception("존재하지 않는 게시글")
            if (post.writer == report_writer):
                raise Exception("자신의 글을 신고할 수 없습니다")

            existReport = Report.objects.filter(report_writer=report_writer,
                                                post=post)
            if (len(existReport) > 0):
                raise Exception("이미 신고한 게시글입니다.")

            report = Report(report_text=text,
                            report_writer=report_writer,
                            post=post)
            report.save()
            return JsonResponse({'message': '신고 처리 되었습니다'}, status=200)
        except Exception as e:
            return JsonResponse({'message': str(e)}, status=400)
示例#5
0
def process_report(request):
    if request.method == "POST":
        try:
            report_info = json.loads(request.body.decode('utf-8'))

            report_id = report_info['report_id']
            process_text = report_info['process_text']
            process_type = report_info['process_type']
            process_writer = Member.objects.get(
                id=get_member_info(request.COOKIES)['id'])

            report = Report.objects.filter(report_id=report_id).first()
            reported = report.get_reported()
            if process_type == "블라인드":
                reported.is_blinded = True
            elif process_type == "삭제":
                reported.is_deleted = True
            reported.save()
            report.process_type = process_type
            report.process_writer = process_writer
            report.process_text = process_text
            report.process_date = timezone.now()
            report.is_processed = True

            report.save()
            return JsonResponse({'message': "성공적으로 처리되었습니다"}, status=200)
        except Exception as e:
            print(e)
            return JsonResponse({'message': "신고 처리에 실패했습니다"}, status=452)
示例#6
0
def user_read_login_log(request):
    datas = {}
    memberInfo = get_member_info(request.COOKIES)
    member = Member.objects.get(id=memberInfo['id'])
    logs = LoginLog.objects.filter(login_id=member.id)
    index = len(logs) - 1
    for log in logs:
        datas[index] = log.get_dic()
        index -= 1
    return JsonResponse(datas, status=200)
示例#7
0
def user_read_writed_reply(request):
    member_info = get_member_info(request.COOKIES)
    member = Member.objects.get(id=member_info['id'])
    replies = Reply.objects.filter(writer=member)
    datas = {}
    index = len(replies) - 1
    for reply in replies:
        datas[index] = reply.get_dic(False)
        index -= 1
    return JsonResponse(datas, status=200)
示例#8
0
def book(request):
    book_info = json.loads(request.body.decode('utf-8'))
    start = book_info['start']
    end = book_info['end']
    room_id = book_info['room_id']
    member_id = jwt_manager.get_member_info(request.COOKIES)
    member = Member.objects.filter(id='20150437').first()
    book = Book(member=member, room_id=room_id, start=start, end=end)
    book.save()
    return JsonResponse({'data': "성공적으로 등록되었습니다"}, status=200)
示例#9
0
def process_read_my_notice(request):
    try:
        data = {}
        member_info = get_member_info(request.COOKIES)
        member = Member.objects.get(id=member_info['id'])
        notices = Notice.objects.filter(receiver_id=member, is_read=False)
        idx = len(notices) - 1
        for notice in notices:
            if notice.is_read == False:
                data[idx] = notice.get_for_user()
                idx -= 1
        return JsonResponse({'data': data}, status=200)
    except:
        return JsonResponse({'message': '알림 조회 실패'}, status=455)
示例#10
0
def process_admin_create(request):
    keyword_info = json.loads(request.body.decode('utf-8'))
    keyword_text = keyword_info['keyword']
    try:
        to_use_date = datetime.datetime.strptime(keyword_info['to_use_date'],
                                                 "%Y-%m-%d").date()
    except:
        return JsonResponse({'message': '날짜가 입력되지 않았습니다.'}, status=453)

    # 날짜 겹치는지 체크
    if Keyword.objects.filter(suggest_date=to_use_date).count() != 0:
        return JsonResponse({'message': '기존 키워드와 사용 예정일이 중복되었습니다.'},
                            status=457)

    try:  # 이미 존재 하는 키워드
        keyword = Keyword.objects.get(keyword=keyword_text)

        # 등록된 키워드와 최근 사용일이 30일 이상
        day_diff = abs((keyword.recent_used_date - to_use_date).days)
        if day_diff <= settings.KEYWORD_ALLOW_GAP:
            return JsonResponse({'message': '30일 이내에 사용되었습니다.'}, status=452)

        day_diff = abs((keyword.suggest_date - to_use_date).days)
        if day_diff <= settings.KEYWORD_ALLOW_GAP:
            return JsonResponse({'message': '30일 이내에 사용될 예정입니다.'}, status=452)

        keyword.suggest_date = to_use_date
        keyword.save()
        return JsonResponse({'message': '기존 키워드의 사용 예정일이 수정되었습니다.'},
                            status=200)
    except:
        try:  # 새로운 키워드일 경우
            registrator_info = get_member_info(request.COOKIES)
            registrator = Member.objects.get(id=registrator_info['id'])
            keyword = Keyword(keyword=keyword_text,
                              suggest_date=to_use_date,
                              registrator=registrator)
            keyword.save()
            return JsonResponse({'message': '새로운 키워드가 등록되었습니다.'}, status=200)
        except:
            return JsonResponse({'message': '키워드 등록에 실패하였습니다.'}, status=453)
示例#11
0
def user_search_reply(request):
    memberInfo = get_member_info(request.COOKIES)
    code = int(request.GET.get('code'))
    query = parse.unquote(request.GET.get('query'))
    return search_reply(code, query, False, memberInfo)