示例#1
0
    def get_filter_kwargs(self, **kwargs) -> dict:
        """Return relevant filters"""
        filters = {}

        if 'name' in kwargs:
            filters['slug'] = slugger(kwargs['name'])

        if 'q' in kwargs:
            filters['q'] = slugger(kwargs['q'])

        return filters
示例#2
0
    def save_object(self, obj: Indicator, **kwargs) -> Indicator:
        obj.slug = slugger(obj.name)
        obj.aggregation = obj.source['aggregation']['type']
        db.session.add(obj)
        db.session.commit()

        return obj
示例#3
0
def add(product):
    with dbconn() as conn:
        cur = conn.cursor()

        cur.execute(
            '''SELECT * FROM zsm_data.product_group WHERE pg_slug = %s''',
            (product['product_group'], ))
        row = cur.fetchone()
        if not row:
            return connexion.problem(
                status=404,
                title='Product group not found',
                detail='Can not find product group: {}'.format(
                    product['product_group']))

        product_group = strip_column_prefix(row._asdict())

        try:
            cur.execute(
                '''INSERT INTO zsm_data.product (p_name, p_slug, p_product_group_id) VALUES (%s, %s, %s)''',
                (
                    product['name'],
                    slugger(product['name']),
                    product_group['id'],
                ))
            conn.commit()
        except IntegrityError:
            return connexion.problem(
                status=400,
                title='Product Already Exists',
                detail='Product with name: "{}" already exists!'.format(
                    product['name']))
        return NoContent, 201
    def community_match(self, product_group: str,
                        communities: List[str]) -> bool:
        product_group_community = product_group.lower()
        if product_group.startswith('Core') and '/' in product_group:
            product_group_community = slugger(product_group.split('/')[1])

        return self.is_admin() or product_group_community in communities
def add(product_group):
    with dbconn() as conn:
        cur = conn.cursor()
        cur.execute('''INSERT INTO zsm_data.product_group (pg_name, pg_department, pg_slug) VALUES (%s, %s, %s)''',
                    (product_group['name'], product_group['department'], slugger(product_group['name'])))
        conn.commit()
        cur.close()
        return NoContent, 201
def add(product):
    with dbconn() as conn:
        cur = conn.cursor()
        cur.execute(
            '''INSERT INTO zsm_data.product (p_name, p_slug, p_product_group_id)
              VALUES (%s, %s, (SELECT pg_id FROM zsm_data.product_group WHERE pg_slug = %s))''',
            (product['name'], slugger(product['name']), product['product_group']))
        conn.commit()
        cur.close()
        return NoContent, 201
示例#7
0
    def current_user_communities(self):
        uid = request.token_info['uid']

        groups = get_user_groups(uid)

        # expected : "Function/Communities/*/COMMUNITY-NANE/ROLE"
        communities = [
            slugger(c.split('/')[-2]) for c in groups if c.startswith(API_AUTHORIZATION_COMMUNITY_PREFIX)
        ]

        return communities
    def get_object_fields(self, body: dict, **kwargs) -> dict:
        fields = {}

        for field in self.model_fields:
            if field in READ_ONLY_FIELDS:
                continue

            if field == 'slug' and 'name' in body:
                fields['slug'] = slugger(body['name'])
            else:
                fields[field] = body.get(field)

        return fields
    def get_object_fields(self, body: dict, **kwargs) -> dict:
        fields = {}

        for field in self.model_fields:
            if field in READ_ONLY_FIELDS:
                continue

            if field == 'slug' and 'name' in body:
                fields['slug'] = slugger(body['name'])
                if fields['slug'] == '':
                    raise ProblemException(
                        title='Invalid resource name',
                        detail='Resource name is invalid. Should include at least one character!')
            else:
                fields[field] = body.get(field)

        return fields
示例#10
0
def add(product_group):
    with dbconn() as conn:
        cur = conn.cursor()
        try:
            cur.execute(
                '''INSERT INTO zsm_data.product_group (pg_name, pg_department, pg_slug) VALUES (%s, %s, %s)''',
                (product_group['name'], product_group['department'],
                 slugger(product_group['name'])))
            conn.commit()
            cur.close()
            return NoContent, 201
        except IntegrityError:
            return connexion.problem(
                status=400,
                title='Product Group already exists',
                detail='Product group with name: "{}" already exists!'.format(
                    product_group['name']))