Exemple #1
0
def orderby_2_sql(order_by):
    sortings = order_by.split(',')
    rt = []
    for x in sortings:
        try:
            prop, *_ = x.strip().partition(' ')
            prop = prop.strip()
            order = 'DESC' if _[-1].upper() == 'DESC' else 'ASC'
            rt.append('`{}` {}'.format(prop, order))
        except Exception as e:
            msg = 'Invalid syntax:{}'.format(x)
            raise Error(msg, 400)

    return ','.join(rt)
Exemple #2
0
    def post(self):
        '''
            support create one or multi resource
        '''
        data = request.get_json()
        if isinstance(data, dict):
            data = [data]
        elif len(data) > MAX_CREATION:  # data is a list of object
            err_msg = ' '.join(['can not create more than', str(MAX_CREATION)])
            raise Error(err_msg, 413)

        objs = [self.model(**x) for x in data]
        g.created_objs = objs
        db.session.add_all(objs)
        db.session.commit()
        if len(objs) == 1:
            rv = objs[0]._asdict()
        else:
            rv = [x._asdict() for x in objs]
        return rv
Exemple #3
0
 def delete(self, rid):
     perm = Permission.query.filter_by(id=rid).one()
     if perm.system:
         raise Error('ask your admin for support', 401)
     return super().delete(rid)
Exemple #4
0
 def patch(self, rid):
     perm = Permission.query.filter_by(id=rid).one()
     if perm.system:
         raise Error('system permission is not editable', 401)
     return super().patch(rid)