Skip to content
Snippets Groups Projects
Commit 22f6c6b4 authored by Patrick Jentsch's avatar Patrick Jentsch
Browse files

Addition to last commit.

parent 4a580446
No related branches found
No related tags found
No related merge requests found
from flask import abort, jsonify, request
from flask import abort, jsonify, make_response, request
from flask_login import current_user, login_required
from . import api
from ..models import Job
from ..decorators import admin_required
from ..models import Corpus, Job, User
@api.route('/v1.0/admin/corpora')
@login_required
@admin_required
def admin_corpora():
user_id = request.args.get('user_id', default=str(current_user.id))
if user_id == '*':
corpora = Corpus.query.all()
else:
user = User.query.filter_by(id=user_id).first()
if user:
corpora = user.corpora.all()
else:
return abort(404)
jsonifyable_corpora = []
for corpus in corpora:
jsonifyable_corpora.append(corpus.to_jsonifyable())
return jsonify(jsonifyable_corpora)
@api.route('/v1.0/admin/corpora/<int:corpus_id>')
@login_required
@admin_required
def admin_coprus(corpus_id):
corpus = Corpus.query.filter_by(id=corpus_id).first()
if corpus:
return jsonify(corpus.to_jsonifyable())
else:
return abort(404)
@api.route('/v1.0/admin/jobs')
@login_required
@admin_required
def admin_jobs():
user_id = request.args.get('user_id', default=str(current_user.id))
if user_id == '*':
jobs = Job.query.all()
else:
user = User.query.filter_by(id=user_id).first()
if user:
jobs = user.jobs.all()
else:
return abort(404)
jsonifyable_jobs = []
for job in jobs:
jsonifyable_jobs.append(job.to_jsonifyable())
return jsonify(jsonifyable_jobs)
@api.route('/v1.0/admin/jobs/<int:job_id>')
@login_required
@admin_required
def admin_job(job_id):
job = Job.query.filter_by(id=job_id).first()
if job:
return jsonify(job.to_jsonifyable())
else:
return abort(404)
@api.route('/v1.0/corpora')
@login_required
def corpora():
corpora = []
jsonifyable_corpora = []
for corpus in current_user.corpora.all():
corpora.append({'id': corpus.id,
'creation_date': corpus.creation_date.timestamp(),
'description': corpus.description,
'title': corpus.title})
return jsonify(corpora)
jsonifyable_corpora.append(corpus.to_jsonifyable())
return jsonify(jsonifyable_corpora)
@api.route('/v1.0/corpora/<int:corpus_id>')
@login_required
def corpus(corpus_id):
corpus = current_user.corpora.filter_by(id=corpus_id).first()
if not corpus:
if corpus:
return jsonify(corpus.to_jsonifyable())
else:
return abort(404)
return jsonify({'id': corpus.id,
'creation_date': corpus.creation_date,
'description': corpus.description,
'title': corpus.title})
@api.route('/v1.0/jobs')
@login_required
def jobs():
jobs = []
all = request.args.get('all')
if all and all.lower() == 'true':
if current_user.is_administrator():
jobs_query = Job.query
else:
return abort(403)
else:
jobs_query = current_user.jobs
for job in jobs_query.all():
jobs.append({'id': job.id,
'creation_date': job.creation_date.timestamp(),
'description': job.description,
'end_date': (job.end_date.timestamp() if job.end_date else
None),
'mem_mb': job.mem_mb,
'n_cores': job.n_cores,
'service': job.service,
'service_args': job.service_args,
'service_version': job.service_version,
'status': job.status,
'title': job.title})
return jsonify(jobs)
jsonifyable_jobs = []
for job in current_user.jobs.all():
jsonifyable_jobs.append(job.to_jsonifyable())
return jsonify(jsonifyable_jobs)
@api.route('/v1.0/jobs/<int:job_id>')
@login_required
def job(job_id):
job = current_user.jobs.filter_by(id=job_id).first()
if not job:
if job:
return jsonify(job.to_jsonifyable())
else:
return abort(404)
return jsonify({'id': job.id,
'creation_date': job.creation_date.timestamp(),
'description': job.description,
'end_date': (job.end_date.timestamp() if job.end_date else
None),
'mem_mb': job.mem_mb,
'n_cores': job.n_cores,
'service': job.service,
'service_args': job.service_args,
'service_version': job.service_version,
'status': job.status,
'title': job.title})
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment