Skip to content
Snippets Groups Projects
Commit a9696f44 authored by Jennifer Lindgren's avatar Jennifer Lindgren
Browse files

Backend: Route/method to get pylint parse results of project files.

parent fd7955cc
No related branches found
No related tags found
No related merge requests found
import os, sys import os, sys, subprocess, shutil
import random import random
from __init__ import app
import database_helper as db
from socketio_helper import socketio
import logging import logging
from flask import Flask, request, jsonify, Response, json from flask import Flask, request, jsonify, Response, json
from flask_jwt_extended import JWTManager from flask_jwt_extended import JWTManager
...@@ -14,6 +10,10 @@ from flask_bcrypt import Bcrypt ...@@ -14,6 +10,10 @@ from flask_bcrypt import Bcrypt
from base64 import b64decode from base64 import b64decode
from datetime import datetime from datetime import datetime
from __init__ import app
import database_helper as db
from socketio_helper import socketio
flask_bcrypt = Bcrypt(app) flask_bcrypt = Bcrypt(app)
jwt = JWTManager(app) jwt = JWTManager(app)
...@@ -385,6 +385,33 @@ def delete_project_request(project_id): ...@@ -385,6 +385,33 @@ def delete_project_request(project_id):
'message': 'Successfully deleted project' 'message': 'Successfully deleted project'
}), OK_STATUS_CODE) }), OK_STATUS_CODE)
@app.route('/api/parse_project_files/<project_id>', methods=['GET'])
@jwt_required
def parse_file_request(project_id):
if db.get_project(project_id):
os.mkdir(str(project_id))
for file in db.get_project_files(project_id):
dir_name = str(project_id) + ('/' + file['parent'] if file['parent'] else '')
if not os.path.exists(dir_name):
os.makedirs(dir_name)
if not file['isFolder']:
f = open(dir_name + '/' + file['name'], "a+")
f.write(file['content'])
f.close()
result = subprocess.run(['pylint', '--output-format=json', str(project_id) + '/'],\
stdout=subprocess.PIPE).stdout.decode('utf-8')
shutil.rmtree(str(project_id))
return generate_response(jsonify({
'success': True,
'message': 'Successfully parsed file.',
'result': result
}), OK_STATUS_CODE)
else:
return generate_response(jsonify({
'success': False,
'message': 'No such file'
}), BAD_REQUEST_STATUS_CODE)
### FILE ### ### FILE ###
@app.route('/api/create_file', methods=['POST']) @app.route('/api/create_file', methods=['POST'])
@jwt_required @jwt_required
...@@ -407,7 +434,6 @@ def create_file_request(): ...@@ -407,7 +434,6 @@ def create_file_request():
return generate_response(db.file_schema.jsonify( return generate_response(db.file_schema.jsonify(
new_file), OK_STATUS_CODE) new_file), OK_STATUS_CODE)
@app.route('/api/update_file/<file_id>', methods=['PUT']) @app.route('/api/update_file/<file_id>', methods=['PUT'])
@jwt_required @jwt_required
def update_file_request(file_id): def update_file_request(file_id):
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment