Remove api routes from main package.

This commit is contained in:
Patrick Jentsch 2019-08-15 11:48:14 +02:00
parent 47c3edeb7f
commit 93330c0efb

View File

@ -1,52 +1,15 @@
from flask import abort, current_app, flash, jsonify, redirect, request, render_template, url_for, send_from_directory
from flask import (abort, current_app, flash, redirect, request,
render_template, url_for, send_from_directory)
from flask_login import current_user, login_required
from ..models import Corpus, User, Job
from ..models import Corpus, User
from ..tables import AdminUserTable, AdminUserItem
from . import main
from .forms import CreateCorpusForm
from ..decorators import admin_required
from .. import db
import json
import os
@main.route('/api/v1.0/corpora')
@login_required
def api_corpora():
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)
@main.route('/api/v1.0/corpora/<int:corpus_id>')
@login_required
def api_corpus():
corpus = []
@main.route('/api/v1.0/jobs')
@login_required
def api_jobs():
jobs = []
for job in current_user.jobs.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)
@main.route('/')
def index():
return render_template('main/index.html.j2', title='Opaque')
@ -159,15 +122,14 @@ def job(job_id):
@login_required
def job_download(job_id):
file = request.args.get('file')
job = Job.query.filter_by(id=job_id).first()
job = current_user.jobs.filter_by(id=job_id).first()
if not file or not job:
print('Job not found.')
print('File not found.')
abort(404)
elif not job.user_id == current_user.id:
print('Job does not belong to current user.')
abort(403)
dir = os.path.join(current_app.config['OPAQUE_STORAGE'],
str(current_user.id),
'jobs',
str(job.id))
return send_from_directory(directory=dir, filename=file, as_attachment=True)
return send_from_directory(as_attachment=True,
directory=dir,
filename=file)