#!/usr/bin/python
import requests, json, hmac, hashlib, datetime
#Create an input parameter dictionary
params['title'] = ''
params['numTargets'] = '10'
params['guide_list'] = '{"0":{"sequence":""},"1":{"sequence":""},"2":{"sequence":""},"3":{"sequence":""},"4":{"sequence":""},"5":{"sequence":""},"6":{"sequence":""},"7":{"sequence":""},"8":{"sequence":""},"9":{"sequence":""},"10":{"sequence":""},"11":{"sequence":""},"12":{"sequence":""},"13":{"sequence":""},"14":{"sequence":""},"15":{"sequence":""},"16":{"sequence":""},"17":{"sequence":""},"18":{"sequence":""},"19":{"sequence":""}}'
params['target_list'] = '{"0":{"sequence":"","sgRNAsPerTarget":""},"1":{"sequence":"","sgRNAsPerTarget":""},"2":{"sequence":"","sgRNAsPerTarget":""},"3":{"sequence":"","sgRNAsPerTarget":""},"4":{"sequence":"","sgRNAsPerTarget":""},"5":{"sequence":"","sgRNAsPerTarget":""},"6":{"sequence":"","sgRNAsPerTarget":""},"7":{"sequence":"","sgRNAsPerTarget":""},"8":{"sequence":"","sgRNAsPerTarget":""},"9":{"sequence":"","sgRNAsPerTarget":""},"10":{"sequence":"","sgRNAsPerTarget":""},"11":{"sequence":"","sgRNAsPerTarget":""},"12":{"sequence":"","sgRNAsPerTarget":""},"13":{"sequence":"","sgRNAsPerTarget":""},"14":{"sequence":"","sgRNAsPerTarget":""},"15":{"sequence":"","sgRNAsPerTarget":""},"16":{"sequence":"","sgRNAsPerTarget":""},"17":{"sequence":"","sgRNAsPerTarget":""},"18":{"sequence":"","sgRNAsPerTarget":""},"19":{"sequence":"","sgRNAsPerTarget":""}}'
params['organism_type'] = prokaryotic
params['algorithm'] = 'ELSACalculator_DesignMode'
params['algorithm_version'] = 'v1.0'
#Send it to https://api.denovodna.com/ using a HTTPS POST
params['publicConsumerToken'] = 'test'
params['timestamp'] = datetime.datetime.utcnow().isoformat()
params['signature'] = hmac.new('private key', message, hashlib.sha1).hexdigest()
message = publicConsumerToken + params['timestamp'] + 'undefined'
headers = {'Content-type': u'application/json', 'Accept': u'application/json'}
r = requests.post('https://api.denovodna.com/ELSACalculator_DesignMode', data=json.dumps(params), headers=headers)
output = r.json()
#Retrieve the result after the calculation has completed.
id = output['JobInfo']['id']
result = sendGet('Result',{'id' : id})