MetaPhase-Consulting/State-TalentMAP-API

View on GitHub
talentmap_api/fsbid/views/bid_audit.py

Summary

Maintainability
A
0 mins
Test Coverage
F
28%
import logging
from rest_framework import status
from rest_framework.views import APIView
from rest_framework.response import Response
# from rest_framework.permissions import IsAuthenticated
from talentmap_api.fsbid.views.base import BaseView
import talentmap_api.fsbid.services.bid_audit as services

# from talentmap_api.common.permissions import isDjangoGroupMember
# double check permissions

logger = logging.getLogger(__name__)


class FSBidBidAuditRunView(APIView):
    '''
    Run A Bid Audit 
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.run_bid_audit(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Run Bid Audit Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)

class FSBidBidAuditListView(BaseView):
    '''
    Gets the List of Bid Audits
    '''

    def get(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.get_bid_audit_data(jwt, request.query_params)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call for Bid Audits failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidActiveCyclesListView(BaseView):
    '''
    Get Active Cycles for New Bid Audits
    '''

    def get(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.get_cycles(jwt, request.query_params)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to get Active Cycles failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditCreateView(APIView):
    '''
    Create a new Bid Audit
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.create_new_audit(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Create New Bid Audit Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditUpdateView(APIView):
    '''
    Update a Bid Audit
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.update_bid_audit(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Update a Bid Audit Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditUpdateCountListView(BaseView):
    '''
    Update Bid Count
    '''

    def get(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.update_bid_count(jwt, request.query_params)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to run Bid Audit failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditCategoryListView(BaseView):
    '''
    Get List of Positions In Category for a Cycle
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.get_in_category(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call for Bid Audit data failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditGradeListView(BaseView):
    '''
    Get a List of Positions At Grade for a Cycle
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.get_at_grade(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Post Open Positions failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditCategoryOptionsListView(BaseView):
    '''
    Get List of Options for In Category designation
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.get_in_category_options(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call for Bid Audit Category data failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditCategoryCreateListView(APIView):
    '''
    Create a new In Category
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.create_new_in_category(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Create New In Category Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditGradeOptionsListView(BaseView):
    '''
    Get List of Options for At Grade designation
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.get_at_grade_options(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call for Bid Audit Grade data failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditGradeCreateListView(APIView):
    '''
    Create a new At Grade
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.create_new_at_grade(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Create New At Grade Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditUpdateGradeListView(APIView):
    '''
    Modify existing At Grade
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.update_at_grade(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Update At Grade Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditUpdateCategoryListView(APIView):
    '''
    Modify existing In Category
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.update_in_category(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Update In Category Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditDeleteGradeListView(APIView):
    '''
    Delete existing At Grade relationship
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.delete_at_grade(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Delete At Grade Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)


class FSBidBidAuditDeleteCategoryListView(APIView):
    '''
    Delete existing In Category relationship
    '''

    def post(self, request):
        jwt = request.META['HTTP_JWT']
        result = services.delete_in_category(jwt, request.data)

        if result is None or 'return_code' in result and result['return_code'] != 0:
            logger.error(f"Fsbid call to Delete In Category Failed.")
            return Response(status=status.HTTP_404_NOT_FOUND)

        return Response(result)