Separate collections handlers from resources handlers

Change-Id: I84e46ded9f0301b6a59904b328ecad2b6dea0d07
This commit is contained in:
Yuriy Taraday 2016-03-23 11:48:57 +03:00
parent 74f96c50b7
commit c2e6d24bbc
1 changed files with 24 additions and 14 deletions

View File

@ -38,15 +38,12 @@ component_fields = {
} }
@api.resource('/components', '/components/<int:component_id>') @api.resource('/components')
class Component(flask_restful.Resource): class ComponentsCollection(flask_restful.Resource):
method_decorators = [flask_restful.marshal_with(component_fields)] method_decorators = [flask_restful.marshal_with(component_fields)]
def get(self, component_id=None): def get(self):
if component_id is None: return db.Component.query.all()
return db.Component.query.all()
else:
return db.Component.query.get_or_404(component_id)
def post(self): def post(self):
component = db.Component(name=flask.request.json['name']) component = db.Component(name=flask.request.json['name'])
@ -59,6 +56,14 @@ class Component(flask_restful.Resource):
db.db.session.commit() db.db.session.commit()
return component, 201 return component, 201
@api.resource('/components/<int:component_id>')
class Component(flask_restful.Resource):
method_decorators = [flask_restful.marshal_with(component_fields)]
def get(self, component_id):
return db.Component.query.get_or_404(component_id)
def delete(self, component_id): def delete(self, component_id):
component = db.Component.query.get_or_404(component_id) component = db.Component.query.get_or_404(component_id)
db.db.session.delete(component) db.db.session.delete(component)
@ -72,15 +77,12 @@ environment_fields = {
} }
@api.resource('/environments', '/environments/<int:environment_id>') @api.resource('/environments')
class Environment(flask_restful.Resource): class EnvironmentsCollection(flask_restful.Resource):
method_decorators = [flask_restful.marshal_with(environment_fields)] method_decorators = [flask_restful.marshal_with(environment_fields)]
def get(self, environment_id=None): def get(self):
if environment_id is None: return db.Environment.query.all()
return db.Environment.query.all()
else:
return db.Environment.query.get_or_404(environment_id)
def post(self): def post(self):
component_ids = flask.request.json['components'] component_ids = flask.request.json['components']
@ -98,6 +100,14 @@ class Environment(flask_restful.Resource):
db.db.session.commit() db.db.session.commit()
return environment, 201 return environment, 201
@api.resource('/environments/<int:environment_id>')
class Environment(flask_restful.Resource):
method_decorators = [flask_restful.marshal_with(environment_fields)]
def get(self, environment_id):
return db.Environment.query.get_or_404(environment_id)
def delete(self, environment_id): def delete(self, environment_id):
environment = db.Environment.query.get_or_404(environment_id) environment = db.Environment.query.get_or_404(environment_id)
db.db.session.delete(environment) db.db.session.delete(environment)