# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
+
+from opnfv_testapi.resources import handlers
+from opnfv_testapi.resources import project_models
from opnfv_testapi.tornado_swagger import swagger
-from handlers import GenericApiHandler
-from opnfv_testapi.common.constants import HTTP_FORBIDDEN
-from project_models import Project
-class GenericProjectHandler(GenericApiHandler):
+class GenericProjectHandler(handlers.GenericApiHandler):
def __init__(self, application, request, **kwargs):
super(GenericProjectHandler, self).__init__(application,
request,
**kwargs)
self.table = 'projects'
- self.table_cls = Project
+ self.table_cls = project_models.Project
class ProjectCLHandler(GenericProjectHandler):
- @swagger.operation(nickname="List all Projects")
+ @swagger.operation(nickname="listAllProjects")
def get(self):
"""
@description: list all projects
"""
self._list()
- @swagger.operation(nickname="Create a Project")
+ @swagger.operation(nickname="createProject")
def post(self):
"""
@description: create a project
@raise 403: project already exists
@raise 400: body or name not provided
"""
- def query(data):
- return {'name': data.name}
-
- def error(data):
- message = '{} already exists as a project'.format(data.name)
- return HTTP_FORBIDDEN, message
-
- miss_checks = ['name']
- db_checks = [(self.table, False, query, error)]
- self._create(miss_checks, db_checks)
+ def query():
+ return {'name': self.json_args.get('name')}
+ miss_fields = ['name']
+ self._create(miss_fields=miss_fields, query=query)
class ProjectGURHandler(GenericProjectHandler):
- @swagger.operation(nickname='Get a Project by project_name')
+ @swagger.operation(nickname='getProjectByName')
def get(self, project_name):
"""
@description: get a single project by project_name
@return 200: project exist
@raise 404: project not exist
"""
- self._get_one({'name': project_name})
+ self._get_one(query={'name': project_name})
- @swagger.operation(nickname="Update a Project by project_name")
+ @swagger.operation(nickname="updateProjectByName")
def put(self, project_name):
"""
@description: update a single project by project_name
"""
query = {'name': project_name}
db_keys = ['name']
- self._update(query, db_keys)
+ self._update(query=query, db_keys=db_keys)
- @swagger.operation(nickname='Delete a Project by project_name')
+ @swagger.operation(nickname='deleteProjectByName')
def delete(self, project_name):
"""
@description: delete a project by project_name
@return 200: delete success
@raise 404: project not exist
"""
- self._delete({'name': project_name})
+ self._delete(query={'name': project_name})