From 93330c0efb1bffcbbd846e52861ba96e361e6beb Mon Sep 17 00:00:00 2001
From: Patrick Jentsch <p.jentsch@uni-bielefeld.de>
Date: Thu, 15 Aug 2019 11:48:14 +0200
Subject: [PATCH] Remove api routes from main package.

---
 app/main/views.py | 54 +++++++----------------------------------------
 1 file changed, 8 insertions(+), 46 deletions(-)

diff --git a/app/main/views.py b/app/main/views.py
index 18585dc9..024e74fb 100644
--- a/app/main/views.py
+++ b/app/main/views.py
@@ -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)
-- 
GitLab