|
@@ -36,24 +36,30 @@ class labkeyDB:
|
|
|
|
|
|
def addQuery(self,project,schemaName,queryName,fields,options={}):
|
|
|
listDomainDefinition={}
|
|
|
+ fNames=[f['name'] for f in fields]
|
|
|
if schemaName=='lists':
|
|
|
listDomainDefinition['kind']='IntList'
|
|
|
- fields.insert(0,{'name':'Key','rangeURI':'int'})
|
|
|
- options={}
|
|
|
- options['keyName']='Key'
|
|
|
- if queryName.find('enum')==0:
|
|
|
- options['keyType']='Integer'
|
|
|
- else:
|
|
|
- options['keyType']='AutoIncrementInteger'
|
|
|
+ #check if options were set
|
|
|
+ try:
|
|
|
+ x=options['keyName']
|
|
|
+ except KeyError:
|
|
|
+ if 'Key' not in fNames:
|
|
|
+ fields.insert(0,{'name':'Key','rangeURI':'int'})
|
|
|
+ options['keyName']='Key'
|
|
|
+ if queryName.find('enum')==0:
|
|
|
+ options['keyType']='Integer'
|
|
|
+ else:
|
|
|
+ options['keyType']='AutoIncrementInteger'
|
|
|
listDomainDefinition['options']=options
|
|
|
+
|
|
|
if schemaName=='study':
|
|
|
listDomainDefinition['kind']='StudyDatasetVisit'
|
|
|
+
|
|
|
domainDesign={}
|
|
|
domainDesign['name']=queryName
|
|
|
domainDesign['description']='Some description'
|
|
|
domainDesign['fields']=fields
|
|
|
listDomainDefinition['domainDesign']=domainDesign
|
|
|
- listDomainDefinition['options']=options
|
|
|
url=self.net.GetLabkeyUrl()+'/'+project
|
|
|
url+='/property-createDomain.api'
|
|
|
response=self.net.post(url,json.dumps(listDomainDefinition))
|