Ejemplo n.º 1
0
    def _get_permissions(sub: Urn, skip: int, take: int):
        with create_transaction() as transaction:
            count = transaction.query(PermissionSql) \
                .filter(PermissionSql.subject == str(sub)) \
                .count()

            if count == 0 or skip >= count:
                return HTTPNotFound(ItemsResult([], skip, take, count))

            permissions = transaction.query(PermissionSql)\
                .filter(PermissionSql.subject == sub)\
                [skip:take]
            items = list(map(lambda p: p.val().__dict__, permissions))
            return HTTPOk(ItemsResult(items, skip, take, count))
Ejemplo n.º 2
0
 def _get_permissions(request: Request, help: str = ''):
     response = request.get_response()
     data = json.loads(response.body.decode())
     if response.status_code != HTTPStatus.OK and response.status_code != HTTPStatus.NOT_FOUND:
         logging.warning('Fail to load permissions' + help + ': ' + data.get('error_message', ''))
         return OperationResult.fail(FailResult(code=response.status_code, **data))
     data['items'] = list(map(lambda o: Permission(**o), data.get('items', [])))
     return OperationResult.success(ItemsResult(**data))
Ejemplo n.º 3
0
 def get_forms_by_place(self):
         place_id = self.request.matchdict.get('place_id')
         skip = int(self.request.matchdict.get('skip', 0))
         take = int(self.request.matchdict.get('take', 50000))
         with create_transaction() as transaction:
             count = transaction.query(FormSql) \
                 .join(BindingSql, BindingSql.form_id == FormSql.id) \
                 .filter(BindingSql.place_id == place_id) \
                 .count()
             if count == 0 or skip >= count:
                 return HTTPNotFound(ItemsResult([], skip, take, count))
             answers = transaction.query(FormSql) \
                 .join(BindingSql, BindingSql.form_id == FormSql.id) \
                 .filter(BindingSql.place_id == place_id) \
                 [skip:take]
             items = list(map(lambda p: p.val().__dict__, answers))
             return HTTPOk(ItemsResult(items, skip, take, count))
Ejemplo n.º 4
0
    def get_forms(self):
        user_id = self.request.matchdict.get('user_id')
        skip = int(self.request.matchdict.get('skip', 0))
        take = int(self.request.matchdict.get('take', 50000))

        with create_transaction() as transaction:
            count = transaction.query(FormSql)\
                .filter(FormSql.creator == user_id)\
                .count()

            if count == 0 or skip >= count:
                return HTTPNotFound(ItemsResult([], skip, take, count))

            answers = transaction.query(FormSql)\
                .filter(FormSql.creator == user_id)\
                [skip:take]
            items = list(map(lambda p: p.val().__dict__, answers))
            return HTTPOk(ItemsResult(items, skip, take, count))
Ejemplo n.º 5
0
 def get_answers(self, user_id: str, skip: int = 0, take: int = 50000):
     request = Request.blank('/api/form/v1/user/%s/answer?skip=%d&take=%d' %
                             (user_id, skip, take))
     request.authorization = self.auth.get_session_id()
     response = request.get_response()
     data = json.loads(response.body.decode())
     if response.status_code != HTTPStatus.OK and response.status_code != HTTPStatus.NOT_FOUND:
         logging.warning('Fail to load answers for user ' + user_id + ': ' +
                         data.get('error_message', ''))
         return OperationResult.fail(
             FailResult(code=response.status_code, **data))
     data['items'] = list(map(lambda o: Answer(**o), data.get('items', [])))
     return OperationResult.success(ItemsResult(**data))