Exemplo n.º 1
0
Arquivo: api.py Projeto: stan1y/mgen
 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)
Exemplo n.º 2
0
Arquivo: api.py Projeto: stan1y/mgen
    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)
Exemplo n.º 3
0
Arquivo: api.py Projeto: stan1y/mgen
 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)
Exemplo n.º 4
0
Arquivo: api.py Projeto: stan1y/mgen
 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)