Blame progit/api/__init__.py
|
Pierre-Yves Chibon |
0537b7 |
#-*- coding: utf-8 -*-
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
"""
|
|
Pierre-Yves Chibon |
0537b7 |
(c) 2015 - Copyright Red Hat Inc
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
Authors:
|
|
Pierre-Yves Chibon |
0537b7 |
Pierre-Yves Chibon <pingou@pingoured.fr></pingou@pingoured.fr>
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
API namespace version 0.
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
"""
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
import flask
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
API = flask.Blueprint('api_ns', __name__, url_prefix='/api/0')
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
from progit import __api_version__, APP, SESSION
|
|
Pierre-Yves Chibon |
0537b7 |
import progit
|
|
Pierre-Yves Chibon |
0537b7 |
import progit.lib
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
@API.route('/version/')
|
|
Pierre-Yves Chibon |
0537b7 |
@API.route('/version')
|
|
Pierre-Yves Chibon |
0537b7 |
def api_version():
|
|
Pierre-Yves Chibon |
0537b7 |
'''
|
|
Pierre-Yves Chibon |
0537b7 |
API Version
|
|
Pierre-Yves Chibon |
0537b7 |
-----------
|
|
Pierre-Yves Chibon |
0537b7 |
Display the most recent api version.
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
::
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
/api/version
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
Accepts GET queries only.
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
Sample response:
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
::
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
{
|
|
Pierre-Yves Chibon |
0537b7 |
"version": "1"
|
|
Pierre-Yves Chibon |
0537b7 |
}
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
'''
|
|
Pierre-Yves Chibon |
0537b7 |
return flask.jsonify({'version': __api_version__})
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
@API.route('/users/')
|
|
Pierre-Yves Chibon |
0537b7 |
@API.route('/users')
|
|
Pierre-Yves Chibon |
0537b7 |
def api_users():
|
|
Pierre-Yves Chibon |
0537b7 |
'''
|
|
Pierre-Yves Chibon |
0537b7 |
List users
|
|
Pierre-Yves Chibon |
0537b7 |
-----------
|
|
Pierre-Yves Chibon |
0537b7 |
Returns the list of all users that have logged into this progit instances.
|
|
Pierre-Yves Chibon |
0537b7 |
This can then be used as input for autocompletion in some forms/fields.
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
::
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
/api/users
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
Accepts GET queries only.
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
Sample response:
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
::
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
{
|
|
Pierre-Yves Chibon |
0537b7 |
"users": ["user1", "user2"]
|
|
Pierre-Yves Chibon |
0537b7 |
}
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
'''
|
|
Pierre-Yves Chibon |
0537b7 |
pattern = flask.request.args.get('pattern', None)
|
|
Pierre-Yves Chibon |
0537b7 |
if pattern is not None and not pattern.endswith('*'):
|
|
Pierre-Yves Chibon |
0537b7 |
pattern += '*'
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
print pattern
|
|
Pierre-Yves Chibon |
0537b7 |
|
|
Pierre-Yves Chibon |
0537b7 |
return flask.jsonify(
|
|
Pierre-Yves Chibon |
0537b7 |
{
|
|
Pierre-Yves Chibon |
0537b7 |
'users': [
|
|
Pierre-Yves Chibon |
0537b7 |
user.username
|
|
Pierre-Yves Chibon |
0537b7 |
for user in progit.lib.get_all_users(
|
|
Pierre-Yves Chibon |
0537b7 |
SESSION, pattern=pattern)
|
|
Pierre-Yves Chibon |
0537b7 |
]
|
|
Pierre-Yves Chibon |
0537b7 |
}
|
|
Pierre-Yves Chibon |
0537b7 |
)
|