mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-03 20:02:47 +00:00 
			
		
		
		
	Big update, corpus analysis reworked, versioned services, preliminary work for contributions
This commit is contained in:
		@@ -1,7 +1,6 @@
 | 
			
		||||
from flask import Blueprint
 | 
			
		||||
from flask_restx import Api
 | 
			
		||||
 | 
			
		||||
from .jobs import ns as jobs_ns
 | 
			
		||||
from .tokens import ns as tokens_ns
 | 
			
		||||
 | 
			
		||||
bp = Blueprint('api', __name__)
 | 
			
		||||
@@ -23,5 +22,4 @@ api = Api(
 | 
			
		||||
    version='1.0'
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
api.add_namespace(jobs_ns)
 | 
			
		||||
api.add_namespace(tokens_ns)
 | 
			
		||||
 
 | 
			
		||||
@@ -9,8 +9,12 @@ token_auth = HTTPTokenAuth()
 | 
			
		||||
 | 
			
		||||
@basic_auth.verify_password
 | 
			
		||||
def verify_password(email_or_username, password):
 | 
			
		||||
    user = User.query.filter(or_(User.username == email_or_username,
 | 
			
		||||
                                 User.email == email_or_username.lower())).first()
 | 
			
		||||
    user = User.query.filter(
 | 
			
		||||
        or_(
 | 
			
		||||
            User.username == email_or_username,
 | 
			
		||||
            User.email == email_or_username.lower()
 | 
			
		||||
        )
 | 
			
		||||
    ).first()
 | 
			
		||||
    if user and user.verify_password(password):
 | 
			
		||||
        return user
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,48 +0,0 @@
 | 
			
		||||
from flask_restx import Namespace, Resource
 | 
			
		||||
from .auth import token_auth
 | 
			
		||||
from ..jobs import tasks
 | 
			
		||||
from ..models import Job
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ns = Namespace('jobs', description='Job operations')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ns.route('')
 | 
			
		||||
class API_Jobs(Resource):
 | 
			
		||||
    '''Shows a list of all jobs and lets you POST to add new job'''
 | 
			
		||||
 | 
			
		||||
    @ns.doc(security='apiKey')
 | 
			
		||||
    @token_auth.login_required
 | 
			
		||||
    def get(self):
 | 
			
		||||
        '''List all jobs'''
 | 
			
		||||
        # TODO: Implement the correct get_jobs functionality
 | 
			
		||||
        jobs = Job.query.all()
 | 
			
		||||
        return [job.to_dict(include_relationships=False) for job in jobs]
 | 
			
		||||
 | 
			
		||||
    @ns.doc(security='apiKey')
 | 
			
		||||
    @token_auth.login_required
 | 
			
		||||
    def post(self):
 | 
			
		||||
        '''Create a new job'''
 | 
			
		||||
        # TODO: Implement this
 | 
			
		||||
        pass
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ns.route('/<hashid:id>')
 | 
			
		||||
class API_Job(Resource):
 | 
			
		||||
    '''Show a single job and lets you delete it'''
 | 
			
		||||
 | 
			
		||||
    @ns.doc(security='apiKey')
 | 
			
		||||
    @token_auth.login_required
 | 
			
		||||
    def get(self, id):
 | 
			
		||||
        '''Get a job by id'''
 | 
			
		||||
        job = Job.query.get_or_404(id)
 | 
			
		||||
        return job.to_dict(include_relationships=False)
 | 
			
		||||
 | 
			
		||||
    @ns.doc(security='apiKey')
 | 
			
		||||
    @token_auth.login_required
 | 
			
		||||
    def delete(self, id):
 | 
			
		||||
        '''Delete a job by id'''
 | 
			
		||||
        job = Job.query.get_or_404(id)
 | 
			
		||||
        # We use this imported task because it will run in the background
 | 
			
		||||
        tasks.delete_job(job.id)
 | 
			
		||||
        return '', 204
 | 
			
		||||
		Reference in New Issue
	
	Block a user