Merge branch 'master' of ssh://bitbucket.org/yackob03/quay

Conflicts:
	static/js/app.js
This commit is contained in:
yackob03 2013-10-02 00:48:48 -04:00
commit 20765b7e37
10 changed files with 316 additions and 71 deletions

View file

@ -14,7 +14,7 @@ from auth.permissions import (ReadRepositoryPermission,
ModifyRepositoryPermission,
AdministerRepositoryPermission)
from endpoints import registry
import re
logger = logging.getLogger(__name__)
@ -56,6 +56,14 @@ def get_logged_in_user():
@app.route('/api/user/', methods=['POST'])
def create_user_api():
user_data = request.get_json()
existing_user = model.get_user(user_data['username'])
if existing_user:
error_resp = jsonify({
'message': 'The username already exists'
})
error_resp.status_code = 400
return error_resp
try:
new_user = model.create_user(user_data['username'], user_data['password'],
user_data['email'])
@ -63,8 +71,13 @@ def create_user_api():
send_confirmation_email(new_user.username, new_user.email, code.code)
return make_response('Created', 201)
except model.DataModelException as ex:
message = ex.message
m = re.search('column ([a-zA-Z]+) is not unique', message)
if m and m.group(1):
message = m.group(1) + ' already exists'
error_resp = jsonify({
'message': ex.message,
'message': message,
})
error_resp.status_code = 400
return error_resp
@ -113,10 +126,25 @@ def list_repos_api():
'name': repo_obj.name,
'description': repo_obj.description,
}
limit = request.args.get('limit', None)
include_public = request.args.get('public', 'true')
include_private = request.args.get('private', 'true')
sort = request.args.get('sort', 'false')
username = current_user.db_user.username if current_user.is_authenticated() else None
try:
limit = int(limit) if limit else None
except:
limit = None
include_public = include_public == 'true'
include_private = include_private == 'true'
sort = sort == 'true'
username = current_user.db_user.username if current_user.is_authenticated() and include_private else None
repos = [repo_view(repo)
for repo in model.get_visible_repositories(username)]
for repo in model.get_visible_repositories(
username, limit = limit, include_public = include_public, sort = sort)]
response = {
'repositories': repos
}