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))
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))
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))
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))
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))