def on_get(self, request, response, sall=None, stag=None, sgrp=None): """Search resources. Args: request (obj): Falcon Request(). response (obj): Falcon Response(). sall (str): Search all ``sall`` path parameter. stag (str): Search tags ``stag`` path parameter. sgrp (str): Search groups ``sgrp`` path parameter. """ self._logger.debug('run: %s %s', request.method, request.uri) if sall: request.params['sall'] = sall if stag: request.params['stag'] = stag if sgrp: request.params['sgrp'] = sgrp api = Api(self._category, Api.SEARCH, request.params) Config.load(api) self._content.run() if not self._content.collection and Config.search_limit != 0: Cause.push(Cause.HTTP_NOT_FOUND, 'cannot find resources') if Cause.is_ok(): response.content_type = ApiResource.MEDIA_JSON_API response.body = Generate.collection(self._content.collection, request, response, pagination=True) response.status = Cause.http_status() else: response.content_type = ApiResource.MEDIA_JSON_API response.body = Generate.error(Cause.json_message()) response.status = Cause.http_status() Cause.reset() self._logger.debug('end: %s %s', request.method, request.uri)
def on_post(self, request, response, **kwargs): # pylint: disable=unused-argument """Create new resource. Args: request (obj): Falcon Request(). response (obj): Falcon Response(). """ self._logger.debug('run: %s %s', request.method, request.uri) collection = Collection() data = Validate.json_object(request) for resource in data: api = Api(self._category, Api.CREATE, resource) Config.load(api) self._content.run(collection) if Cause.is_ok(): response.content_type = ApiResource.MEDIA_JSON_API response.body = Generate.collection(collection, request, response) response.status = Cause.http_status() else: response.content_type = ApiResource.MEDIA_JSON_API response.body = Generate.error(Cause.json_message()) response.status = Cause.http_status() Cause.reset() self._logger.debug('end: %s %s', request.method, request.uri)