Implemeted getters
This commit is contained in:
@ -1,14 +1,15 @@
|
||||
#!/usr/bin/env python3
|
||||
from flask import request, jsonify
|
||||
import tempfile
|
||||
from flask import request, jsonify, current_app, abort, Response
|
||||
from flask_classful import FlaskView, route
|
||||
from model import db, Default, Details
|
||||
from schema import DetailsSchema, DefaultSchema
|
||||
from utils import json_required
|
||||
from model import db, Default, AIModel
|
||||
from minio.error import BucketAlreadyExists, BucketAlreadyOwnedByYou, ResponseError, NoSuchKey
|
||||
from schemas import AIModelSchema, DefaultSchema
|
||||
from utils import json_required, storage
|
||||
|
||||
|
||||
class ModelView(FlaskView):
|
||||
|
||||
details_schema = DetailsSchema(many=False)
|
||||
aimodel_schema = AIModelSchema(many=False)
|
||||
default_schema = DefaultSchema(many=False)
|
||||
|
||||
@json_required
|
||||
@ -16,24 +17,43 @@ class ModelView(FlaskView):
|
||||
return jsonify({})
|
||||
|
||||
def get(self, _id: str):
|
||||
return jsonify({"id": _id})
|
||||
|
||||
if _id == "$default":
|
||||
default = Default.query.first_or_404() # TODO: Kitalálni, hogy inkább a latestestest-el térjen-e vissza
|
||||
m = default.default
|
||||
else:
|
||||
m = AIModel.query.fiter_by(id=_id).first_or_404()
|
||||
|
||||
try:
|
||||
data = storage.connection.get_object(current_app.config['MINIO_BUCKET_NAME'], m.id)
|
||||
except NoSuchKey:
|
||||
abort(500, "The ID is stored in the database but not int the Object Store")
|
||||
|
||||
return Response(data.stream(), mimetype=data.headers['Content-type'])
|
||||
|
||||
@route('<_id>/details')
|
||||
def get_details(self, _id: str):
|
||||
return jsonify({"id": _id})
|
||||
|
||||
if _id == "$default":
|
||||
default = Default.query.first_or_404() # TODO: Kitalálni, hogy inkább a latestestest-el térjen-e vissza
|
||||
m = default.default
|
||||
else:
|
||||
m = AIModel.query.fiter_by(id=_id).first_or_404()
|
||||
|
||||
return jsonify(self.aimodel_schema.dump(m))
|
||||
|
||||
def delete(self, _id: str):
|
||||
return jsonify({"id": _id})
|
||||
|
||||
m = AIModel.query.fiter_by(id=_id).first_or_404()
|
||||
|
||||
storage.connection.remove_object(current_app.config['MINIO_BUCKET_NAME'], m.id)
|
||||
|
||||
db.session.delete(m)
|
||||
db.session.commit()
|
||||
|
||||
return '', 204
|
||||
|
||||
@json_required
|
||||
@route('$default', methods=['PUT'])
|
||||
def put_default(self):
|
||||
|
||||
Default.query.delete()
|
||||
#new_default = Default()
|
||||
|
||||
|
||||
db.session.add(new_default)
|
||||
db.session.commit()
|
||||
|
||||
return jsonify(self.default_schema.dump(new_default))
|
||||
return jsonify({})
|
||||
|
Reference in New Issue
Block a user