def post(self, request, format=None, *args, **kwargs): queryset = Program.objects.all() # PARAMS: # { # "programDbId": "123", # "name": "Wheat Resistance Program", # "abbreviation" : "DRP1", # "objective" : "Disease resistance", # "leadPerson" : "Dr. Henry Beachell" # } params = self.request.data logger = logging.getLogger(__name__) logger.warn("Search parameters: %s" % params) queryset = search_post_params_in(self, queryset, [('programDbId', 'programDbId'), ('name', 'name'), ('abbreviation', 'abbreviation'), ('objective', 'objective'), ('leadPerson', 'leadPerson')], False) return paginate(queryset, request, ProgramSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = Germplasm.objects.all() # PARAMS: # { # "germplasmPUIs" : [ "http://www.crop-diversity.org/mgis/accession/01BEL084609", "doi:10.15454/328757862534E12" ], # "germplasmDbIds" : [ "986", "01BEL084609" ], # "germplasmSpecies" : [ "aestivum", "vinifera" ], # "germplasmGenus" : [ "Solanum", "Triticum" ], # "germplasmNames" : [ "XYZ1", "Pahang" ], # "accessionNumbers": [ "ITC0609", "ITC0685" ], # "pageSize" : 100, # "page": 1 # } params = self.request.data logger = logging.getLogger(__name__) logger.warn("Parameters: %s" % params) queryset = search_post_params_in( self, queryset, [('germplasmNames', 'germplasmName'), ('germplasmDbId', 'germplasmDbId'), ('germplasmPUIs', 'germplasmPUI'), ('germplasmSpecies', 'germplasmSpecies'), ('germplasmGenus', 'germplasmGenus'), ('accessionNumbers', 'accessionNumber')]) return paginate(queryset, request, GermplasmSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = AlleleMSearch.objects.all() # TODO: it is not clear to which data the query parameters apply! # unknownString=&sepPhased=&sepUnphased=&expandHomozygotes= queryset = search_post_params_in( self, queryset, [('markerprofileDbId', 'markerprofileDbId'), ('markerDbId', 'markerDbId')]) return paginate(queryset, request, AlleleMSearchSerializer, BrAPIListPagination)
def post(self, request, format=None, *args, **kwargs): queryset = Study.objects.all() queryset = search_post_params_in( self, queryset, [('studyType', 'studyType'), ('seasonDbId', 'seasonDbId'), ('locationDbId', 'locationDbId'), ('programDbId', 'programDbId'), ('germplasmDbId', 'germplasmDbIds'), ('observationVariableDbId', 'observationVariableDbIds'), ('active', 'active')]) return paginate(queryset, request, StudySerializer)
def post(self, request, format=None, *args, **kwargs): params = self.request.data logger = logging.getLogger(__name__) logger.warn("Searching with parameters: %s" % params) queryset = MarkerProfile.objects.all() queryset = search_post_params_in(self, queryset, [('germplasmDbId', 'germplasm'), ('studyDbId', 'studyDbId'), ('sampleDbId', 'sample'), ('extractDbId', 'extract'), ('analysisMethod', 'method')]) return paginate(queryset, request, MarkerProfileSerializer)
def post(self, request, format=None, *args, **kwargs): params = self.request.data logger = logging.getLogger(__name__) logger.warn("Search parameters: %s" % params) queryset = ObsVariable.objects.all() # TODO: add ('datatypes'), ('traitClasses') queryset = search_post_params_in(self, queryset, [('observationVariableDbId', 'observationVariableDbIds'), ('ontologyXref', 'ontologyXrefs'), ('ontologyDbId', 'ontologyDbIds'), ('method', 'methodDbIds'), ('scale', 'scaleDbIds'), ('name', 'names')]) return paginate(queryset, request, ObsVariableSerializer)
def post(self, request, format=None, *args, **kwargs): queryset = Phenotype.objects.all() # PARAMS: # { # "germplasmDbIds" : [ "Blabla", "34Mtp362" ], // (optional, text, `986`) ... The name or synonym of external genebank accession identifiers # "observationVariableDbIds" : [ "37373", "CO_321:00000234"], // (optional, text, `CO_321:00000234`) ... The IDs of traits, could be ontology ID, database ID or PUI # "studyDbIds" : [ "383", "2929", "WHEAT_NETWK_2016_MONTPELLIER" ], // (optional, text, `2356`) ... The database ID / PK of the studies search parameter # "locationDbIds" : [ "383838", "MONTPELLIER" ], // locations these traits were collected # "programDbIds" : [ "3838", "Drought resistance CG 2020" ], // list of programs that have phenotyped this trait # "seasonDbIds" : [ "338", "2010", "1956-2014", "2002-2003-2004", "2007 Spring" ], // (optional, text, `2001`) ... The year or Phenotyping campaign of a multiannual study (trees, grape, ...) # "observationLevel" : "plot", // (optional, text, `plot`) ... The type of the observationUnit. Returns only the observaton unit of the specified type; the parent levels ID can be accessed through observationUnitStructure. # "observationTimeStampRange" : ["2015-06-16T00:53:26-0800","2015-06-18T00:53:26-0800"] # "pageSize" : 100, // (optional, integer, `1000`) ... The size of the pages to be returned. Default is `1000`. # "page" : 1, // (optional, integer, `10`) ... Which result page is requested # } params = self.request.data logger = logging.getLogger(__name__) logger.warn("Search parameters: %s" % params) queryset = search_post_params_in( self, queryset, [('germplasmDbIds', 'germplasmDbIds'), ('observationVariableDbIds', 'observationVariableDbIds'), ('studyDbIds', 'studyDbIds'), ('locationDbIds', 'locationDbIds'), ('programDbIds', 'programDbIds'), ('seasonDbIds', 'seasonDbIds'), ('observationLevel', 'observationLevel')]) observationTimeStampRange = params.get('observationTimeStampRange', None) if observationTimeStampRange is not None: queryset = queryset.filter( Q(observationTimeStampRange__gte=observationTimeStampRange[0]) & Q(observationTimeStampRange__lte=observationTimeStampRange[1])) # end if #serializer = PhenotypeSerializer(queryset, many=True) return paginate(queryset, request, PhenotypeSerializer)