Flesh out the create API and wire everything up together. Next up, testing.

This commit is contained in:
yackob03 2013-10-25 01:14:38 -04:00
parent 2afb8c85b1
commit 9b9a29c310
10 changed files with 156 additions and 15 deletions

View file

@ -2,7 +2,7 @@ import logging
import stripe
import re
from flask import request, make_response, jsonify, abort
from flask import request, make_response, jsonify, abort, url_for
from flask.ext.login import login_required, current_user, logout_user
from flask.ext.principal import identity_changed, AnonymousIdentity
from functools import wraps
@ -11,6 +11,8 @@ from collections import defaultdict
import storage
from data import model
from data.userfiles import UserRequestFiles
from data.queue import dockerfile_build_queue
from app import app
from util.email import send_confirmation_email, send_recovery_email
from util.names import parse_repository_name
@ -170,10 +172,34 @@ def get_matching_users(prefix):
})
user_files = UserRequestFiles(app.config['AWS_ACCESS_KEY'],
app.config['AWS_SECRET_KEY'],
app.config['REGISTRY_S3_BUCKET'])
@app.route('/api/repository/', methods=['POST'])
@api_login_required
def create_repo_api():
pass
namespace_name = request.values['namespace']
repository_name = request.values['repository']
visibility = request.values['visibility']
owner = current_user.db_user()
repo = model.create_repository(namespace_name, repository_name, owner,
visibility)
if request.values['initialize']:
logger.debug('User requested repository initialization.')
dockerfile_source = request.files['initializedata']
dockerfile_id = user_files.store_file(dockerfile_source)
build_request = model.create_repository_build(repo, dockerfile_id)
dockerfile_build_queue.put(json.dumps({'request_id': build_request.id}))
resp = make_response('Created', 201)
resp.headers['Location'] = url_for('get_repo_api', namespace=namespace_name,
repository=repository_name)
return resp
@app.route('/api/find/repository', methods=['GET'])