def getEoxData(request, pids):
    millis = int(round(time.time() * 1000))
    logger.info(millis)     
    pidGet = pids.split(",")
    if len(pidGet) > 100:
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        return getErrorCollectionPids("productId/", request, paginator, pids, 'Maximum 100 number of productIds can be entered')
    
    try:
        if int(request.GET['pagesize']) > 1000 :
            emptylist = []
            paginator = Paginator(emptylist, 1) 
            return getErrorCollectionPids("productId/", request, paginator, pids, 'pagesize should not be more than 1000')               
       
    except MultiValueDictKeyError:
        logger.info('No page values')
    
    
    try:
        if int(request.GET['pageindex']) < 0 :
            emptylist = []
            paginator = Paginator(emptylist, 1) 
            return getErrorCollectionPids("productId/", request, paginator, pids, 'pageindex should  be more than 0')
                  
    except MultiValueDictKeyError:   
        logger.info('No page values')
    except ValueError:
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        return getErrorCollectionPids("productId/", request, paginator, pids, 'pageindex should  be Integer')
   
    
    eoxdatamodelObj = Eoxdatamodel()
    if request.method == "GET":  
        fullList = [i for i in Eoxdatamodel.getProductDetailsFilter(eoxdatamodelObj, pidGet)]  
        return resultProductId(fullList, "productId/", request, pids)
def inputValidation(linkref, request):
    print('inside validation')
    errors = []
    try:
        datetime.datetime.strptime(request.GET['fromDate'], '%Y-%m-%d %H:%M:%S')
    except ValueError:
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('fromDate is not in the correct format')
        # return getErrorCollection(linkref, request, paginator, request.GET['fromDate'], request.GET['toDate'], 'From date is not in the correct format')
    except MultiValueDictKeyError:   
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('fromDate is mandatory')
        # return getErrorCollection(linkref, request, paginator, '', '', 'From date is mandatory')
    
    try:
        datetime.datetime.strptime(request.GET['toDate'], '%Y-%m-%d %H:%M:%S')
    except ValueError:
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('toDate is not in the correct format')
        # return getErrorCollection(linkref, request, paginator, request.GET['fromDate'], request.GET['toDate'], 'To date is not in the correct format')
    except MultiValueDictKeyError:   
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('toDate is mandatory')
        # return getErrorCollection(linkref, request, paginator, '', '', 'To date is mandatory')
    
    try:
        if int(request.GET['pagesize']) > 1000   :
            emptylist = []
            paginator = Paginator(emptylist, 1)
            errors.append('pagesize should not be more than 1000') 
    except MultiValueDictKeyError:   
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('pagesize is mandatory')
        # return getErrorCollection(linkref, request, paginator, request.GET['fromDate'], request.GET['toDate'], 'Page index and Page Size are mandatory')
    except ValueError:
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('pagesize should be Integer')
              
    try:
        if int(request.GET['pageindex']) < 0 :
            emptylist = []
            paginator = Paginator(emptylist, 1) 
            errors.append('pageindex should be greater than 0')
            # return getErrorCollection(linkref, request, paginator, request.GET['fromDate'], request.GET['toDate'], 'Page index should be greater than 0')       
    except MultiValueDictKeyError:   
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('pageindex is mandatory')
    except ValueError:       
        emptylist = []
        paginator = Paginator(emptylist, 1) 
        errors.append('pageindex should be Integer')
    print(errors) 
    if(len(errors) == 0):
        fromDate = datetime.datetime.strptime(request.GET['fromDate'], '%Y-%m-%d %H:%M:%S')
        toDate = datetime.datetime.strptime(request.GET['toDate'], '%Y-%m-%d %H:%M:%S')
        
        if toDate < fromDate:
            emptylist = []
            paginator = Paginator(emptylist, 1)            
            return getErrorCollection(linkref, request, paginator, request.GET['fromDate'], request.GET['toDate'], 'fromDate should be earlier than toDate')
        
        if(months_between(toDate, fromDate) > 6):
            emptylist = []
            paginator = Paginator(emptylist, 1) 
            return getErrorCollection(linkref, request, paginator, request.GET['fromDate'], request.GET['toDate'], 'Difference between fromDate and toDate is maximum 6 months')  
        else :            
            startdate = request.GET['fromDate']
            stopdate = request.GET['toDate']     
            eoxdatamodelObj = Eoxdatamodel()
            if request.method == "GET": 
                if linkref == 'failAnalysisDate' :
                    fullList = [i for i in Eoxdatamodel.getEoAnalysisDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "failAnalysisDate", request, startdate, stopdate)  
                if linkref == 'contractRenewDate' :
                    fullList = [i for i in Eoxdatamodel.getEoContractRenewDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "contractRenewDate", request, startdate, stopdate)  
                if linkref == 'extAnnounceDate' :
                    fullList = [i for i in Eoxdatamodel.getEoExtAnnounceDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "extAnnounceDate", request, startdate, stopdate)  
                if linkref == 'lastSupportDate' :
                    fullList = [i for i in Eoxdatamodel.getEoLastSupportDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "lastSupportDate", request, startdate, stopdate)  
                if linkref == 'salesDate' :
                    fullList = [i for i in Eoxdatamodel.getEoSalesDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "salesDate", request, startdate, stopdate)  
                if linkref == 'securityVulSupportDate' :
                    fullList = [i for i in Eoxdatamodel.getEoSecurityVulDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "securityVulSupportDate", request, startdate, stopdate)  
                if linkref == 'svcAttachDate' :
                    fullList = [i for i in Eoxdatamodel.getEoSvcAttachDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "svcAttachDate", request, startdate, stopdate)  
                if linkref == 'swMaintenanceDate' :
                    fullList = [i for i in Eoxdatamodel.getEoSwMaintanenceDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "swMaintenanceDate", request, startdate, stopdate) 
                if linkref == 'lastUpdateDate' :
                    fullList = [i for i in Eoxdatamodel.getUpdateDateDateFilter(eoxdatamodelObj, startdate, stopdate)]  
                    return resultValues(fullList, "lastUpdateDate", request, startdate, stopdate)  
    else :
        return getErrorCollection(linkref, request, paginator, '', '', errors)