diff options
| author | Ziad Sawalha <github@highbridgellc.com> | 2011-06-14 23:33:57 -0500 |
|---|---|---|
| committer | Ziad Sawalha <github@highbridgellc.com> | 2011-06-14 23:33:57 -0500 |
| commit | ffd23970d416e1e8eab3dbe6daecd80ed81c2be1 (patch) | |
| tree | b34c09cd6469010baa2c66b05cf6ca30ab897e87 /keystone/db | |
| parent | 610e997fe665715a463177141c61b79f0df2e217 (diff) | |
Support for GET /v2.0/users and add cdn back to sampledata for v1.0 support
Diffstat (limited to 'keystone/db')
| -rwxr-xr-x | keystone/db/sqlalchemy/api.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/keystone/db/sqlalchemy/api.py b/keystone/db/sqlalchemy/api.py index df1d4d4e..9341954b 100755 --- a/keystone/db/sqlalchemy/api.py +++ b/keystone/db/sqlalchemy/api.py @@ -488,6 +488,57 @@ def user_get(id, session=None): return result +def user_get_page(marker, limit, session=None): + if not session: + session = get_session() + + if marker: + return session.query(models.User).filter("id>:marker").params(\ + marker='%s' % marker).order_by(\ + models.User.id.desc()).limit(limit).all() + else: + return session.query(models.User).order_by(\ + models.User.id.desc()).limit(limit).all() + + +def user_get_page_markers(marker, limit, session=None): + if not session: + session = get_session() + first = session.query(models.User).order_by(\ + models.User.id).first() + last = session.query(models.User).order_by(\ + models.User.id.desc()).first() + if first is None: + return (None, None) + if marker is None: + marker = first.id + next = session.query(models.User).filter("id > :marker").params(\ + marker='%s' % marker).order_by(\ + models.User.id).limit(limit).all() + prev = session.query(models.User).filter("id < :marker").params(\ + marker='%s' % marker).order_by(\ + models.User.id.desc()).limit(int(limit)).all() + if len(next) == 0: + next = last + else: + for t in next: + next = t + if len(prev) == 0: + prev = first + else: + for t in prev: + prev = t + if prev.id == marker: + prev = None + else: + prev = prev.id + if next.id == last.id: + next = None + else: + next = next.id + return (prev, next) + + def user_get_email(email, session=None): if not session: session = get_session() |
