I'm working on an API made with python flask-SQLalchemy.
I'm looking for an elegant way prepare my query step by step.
Today my code is working but seam very hugly to me because of many duplicated content :
if filteron is None:
if orderby == 'config':
if order == 'DESC':
job = JobFull.query.order_by(JobFull.config_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.config_id.asc()).limit(limit).all()
elif orderby == 'crawler':
if order == 'DESC':
job = JobFull.query.order_by(JobFull.crawler_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.crawler_id.asc()).limit(limit).all()
elif orderby == 'site':
if order == 'DESC':
job = JobFull.query.order_by(JobFull.site_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.site_id.asc()).limit(limit).all()
else:
if order == 'DESC':
job = JobFull.query.order_by(JobFull.job_id.desc()).limit(limit).all()
else:
job = JobFull.query.order_by(JobFull.job_id.asc()).limit(limit).all()
what i would like to do is prepare my query like :
if filteron is None:
if order == 'DESC':
job = job.query.orderby.desc()
if orderby == 'config':
job = job.query.orderby.(JobFull.config_id)
if limit is not None:
job = job.limit(limit)
is there an elegant way to do that or does I need to continue in my if nightmare ?
regards,