def get(self, item_id=None): """GET list or single project""" log.debug('REST GET %s -> %s' % (self.request.path, pprint.pformat(self.page_arguments) if item_id is None else '%s=%s' % ( get_primary_key(mgen.model.Item), item_id) )) return self.get_objects(mgen.model.Item, self.query(), item_id)
def get_objects(self, model, query, primary_key = None): '''Modify base query to get page of objects or single one.''' cname = collection_name(model) if primary_key: pkey = get_primary_key(model) log.info('select one %s -> %s = "%s"' % (model.__tablename__, pkey, primary_key)) query = query.filter(pkey == primary_key) log.debug('-- Begin SQL GET query --') log.debug(str(q)) log.debug('-- End SQL GET query --') obj = query.first() if not obj: raise mgen.error.NotFound().describe('object with %s="%s" was not found in %s' % ( pkey, primary_key, cname)) return { 'total': 1, cname: [obj] } else: do_page, page, start, limit = self.page_arguments qinfo = '' if 'filter' in self.request.arguments: flt = self.get_argument('filter') flt_obj = json.loads(flt) qinfo += pprint.pformat(flt_obj, indent=2, width=80) else: qinfo = 'everything' if do_page: qinfo += ' page=%d, start=%d, limit=%d' % (page, start, limit) log.info('select %s -> %s' % (model.__tablename__, qinfo)) query = self.sort(model, query) query = self.filter(model, query) query = self.range(model, query) return self.fetch_page(query, cname)
def get(self, template_id=None): """GET list or single template""" log.debug('REST GET %s -> %s' % (self.request.path, pprint.pformat(self.page_arguments) if template_id is None else '%s=%s' % ( get_primary_key(mgen.model.Template), template_id) )) return self.get_objects(mgen.model.Template, self.query(), template_id)
def get(self, page_id=None): log.debug('REST GET %s -> %s' % (self.request.path, pprint.pformat(self.page_arguments) if page_id is None else '%s=%s' % ( get_primary_key(mgen.model.Page), page_id) )) return self.get_objects(mgen.model.Page, self.query(), page_id)