Beispiel #1
0
    def get(self, request, *args, **kwargs):
        page = ultils.convert_int_or_set_default(
            self.request.query_params.get('p'), default=None)
        if page:
            num = ultils.convert_int_or_set_default(
                num=self.request.query_params.get('n'), default=10)
            job_list = self.job_queryset.get_all_jobs()
            jobs, next_page = ultils.get_data_and_next_page(data=job_list,
                                                            num=num,
                                                            page=page)
            if next_page:
                next_page = '{0}?p={1}&n={2}'.format(
                    reverse_lazy('jobsite_job_list', request=request),
                    next_page, num)
        else:
            jobs = self.job_queryset.get_job_list()
            next_page = None

        if jobs:
            jobs = JobListSerializer(jobs, many=True)
            data = {
                'data': jobs.data,
                'count': len(jobs.data),
                'next_page': next_page
            }
            return Response(
                status=status.HTTP_200_OK,
                data=data,
            )
        return Response(
            status=status.HTTP_404_NOT_FOUND,
            data='Job not found',
        )
Beispiel #2
0
    def get(self, request):
        comment_list = self.comment_queryset.get_user_comments(user=self.request.user)
        if not comment_list:
            return Response(
                status=status.HTTP_200_OK,
                data={
                    'list': None,
                    'count': 0,
                    'next_page': None
                }
            )

        page = ultils.convert_int_or_set_default(self.request.query_params.get('p'), default=1)
        num = ultils.convert_int_or_set_default(num=self.request.query_params.get('n'), default=10)
        comments, next_page = ultils.get_data_and_next_page(data=comment_list, num=num, page=page)
        if next_page:
            next_page = '{0}?p={1}&n={2}'.format(reverse_lazy('jobsite_profile_comment', request=request),
                                                 next_page, num)
        comments = CommentListSerializer(comments, many=True)
        data = {
            'list': comments.data,
            'count': len(comments.data),
            'next_page': next_page
        }
        return Response(
            status=status.HTTP_200_OK,
            data=data,
        )
Beispiel #3
0
    def get(self, request, *args, **kwargs):
        raw_match_string = self.request.query_params.get('match', '')
        match_string = ultils.translate_raw_match_string(raw_match_string)
        if not match_string:
            job_list = self.job_queryset.get_all_jobs()
        else:
            job_list = self.job_queryset.search(match_string=match_string)

        if not job_list:
            return Response(status=status.HTTP_200_OK,
                            data={
                                'list': None,
                                'count': 0,
                                'next_page': None
                            })

        page = ultils.convert_int_or_set_default(
            self.request.query_params.get('p'), default=1)
        num = ultils.convert_int_or_set_default(
            num=self.request.query_params.get('n'), default=10)
        reviews, next_page = ultils.get_data_and_next_page(data=job_list,
                                                           num=num,
                                                           page=page)
        if next_page:
            if not match_string:
                append_string = urllib.urlencode({'p': next_page, 'n': num})
                next_page = '{0}?{1}'.format(
                    reverse_lazy('jobsite_job_list', request=request),
                    append_string)
            else:
                append_string = urllib.urlencode({
                    'match': raw_match_string,
                    'p': next_page,
                    'n': num
                })
                next_page = '{0}?{1}'.format(
                    reverse_lazy('jobsite_job_search', request=request),
                    append_string)
        reviews = JobListSerializer(reviews, many=True)
        data = {
            'list': reviews.data,
            'count': len(reviews.data),
            'next_page': next_page
        }
        return Response(
            status=status.HTTP_200_OK,
            data=data,
        )
Beispiel #4
0
    def get(self, request, *args, **kwargs):
        company_slug = kwargs.get('company_slug', None)
        if company_slug:
            company = self.company_queryset.get_company_via_slug(company_slug)
            if not company:
                return Response(status=status.HTTP_404_NOT_FOUND,
                                data={'message': 'Company not found'})
            review_list = self.review_queryset.get_reviews_for_company(
                company=company)
            review_url = reverse_lazy('jobsite_review_company',
                                      args=[company_slug],
                                      request=request)
        else:
            review_list = self.review_queryset.get_all_reviews()
            review_url = reverse_lazy('jobsite_review_list', request=request)

        if not review_list:
            return Response(status=status.HTTP_200_OK,
                            data={
                                'list': None,
                                'count': 0,
                                'next_page': None
                            })

        page = ultils.convert_int_or_set_default(
            self.request.query_params.get('p'), default=1)
        num = ultils.convert_int_or_set_default(
            num=self.request.query_params.get('n'), default=10)
        reviews, next_page = ultils.get_data_and_next_page(data=review_list,
                                                           num=num,
                                                           page=page)
        if next_page:
            next_page = '{0}?p={1}&n={2}'.format(review_url, next_page, num)
        reviews = ReviewListSerializer(reviews, many=True)
        data = {
            'list': reviews.data,
            'count': len(reviews.data),
            'next_page': next_page
        }
        return Response(
            status=status.HTTP_200_OK,
            data=data,
        )
Beispiel #5
0
    def get(self, request, *args, **kwargs):
        review_id = ultils.convert_int_or_set_default(kwargs.get('review_id'), default=None)
        if not review_id:
            return Response(
                status=status.HTTP_400_BAD_REQUEST,
                data={
                    'message': 'review_id must be integer'
                }
            )

        review_list = self.comment_queryset.get_comment_via_review_id(review_id)
        review_url = reverse_lazy('jobsite_comment_review', args=[review_id], request=request)

        if not review_list:
            return Response(
                status=status.HTTP_200_OK,
                data={
                    'list': None,
                    'count': 0,
                    'next_page': None
                }
            )

        page = ultils.convert_int_or_set_default(self.request.query_params.get('p'), default=1)
        num = ultils.convert_int_or_set_default(num=self.request.query_params.get('n'), default=10)
        reviews, next_page = ultils.get_data_and_next_page(data=review_list, num=num, page=page)
        if next_page:
            next_page = '{0}?p={1}&n={2}'.format(review_url, next_page, num)
        reviews = CommentListSerializer(reviews, many=True)
        data = {
            'list': reviews.data,
            'count': len(reviews.data),
            'next_page': next_page
        }
        return Response(
            status=status.HTTP_200_OK,
            data=data,
        )