using reflection to get models
This commit is contained in:
@@ -5,6 +5,8 @@ For example: listing of available auth providers or registration of users.
|
||||
|
||||
Login through API does not start a new session, but instead returns JWT.
|
||||
"""
|
||||
import pkgutil
|
||||
|
||||
from flask_jwt_extended import jwt_required
|
||||
from flask_restplus import fields, Resource
|
||||
|
||||
@@ -12,6 +14,7 @@ from backend import db, app
|
||||
from backend.api import api_recorder
|
||||
from backend.models.recorder_model import Recorder, RecorderModel, RecorderCommand
|
||||
from backend.models.room_model import Room
|
||||
import backend.recorder_adapters as r_a
|
||||
|
||||
recorder_model = api_recorder.model('Recorder', {
|
||||
'id': fields.String(required=False, description='The recorder\'s identifier'),
|
||||
@@ -187,6 +190,18 @@ class RecorderModelList(Resource):
|
||||
@api_recorder.doc('recorders')
|
||||
@api_recorder.marshal_list_with(recorder_model_model)
|
||||
def get(self):
|
||||
models = []
|
||||
found_packages = list(pkgutil.iter_modules(r_a.__path__))
|
||||
importer = found_packages[0][0]
|
||||
for f_p in found_packages:
|
||||
importer = f_p[0]
|
||||
rec_model_module = importer.find_module(f_p[1]).load_module(f_p[1])
|
||||
rec_model = {'id': f_p[1], 'name': f_p[1]}
|
||||
if 'RECORDER_MODEL_NAME' in rec_model_module:
|
||||
rec_model['name'] = rec_model_module.RECORDER_MODEL_NAME
|
||||
models.append(rec_model)
|
||||
print(models)
|
||||
return models
|
||||
"""
|
||||
List all recorder models
|
||||
:return: recorder models
|
||||
|
||||
Reference in New Issue
Block a user