Port the remaining APIs and fix some locations.

This commit is contained in:
jakedt 2014-03-14 16:09:16 -04:00
parent 1bbe2283dc
commit dfdc3faa57
4 changed files with 42 additions and 8 deletions

View file

@ -6,7 +6,8 @@ from flask.ext.restful import abort
from app import app
from endpoints.api import (RepositoryParamResource, parse_args, query_param, nickname, resource,
require_repo_read, require_repo_write, validate_json_request)
require_repo_read, require_repo_write, validate_json_request,
ApiResource)
from endpoints.common import start_build
from data import model
from auth.permissions import ModifyRepositoryPermission
@ -126,7 +127,7 @@ class RepositoryBuildStatus(RepositoryParamResource):
return build_status_view(build, can_write)
@resource('/repository/<path:repository>/build/<build_uuid>/logs')
@resource('/v1/repository/<path:repository>/build/<build_uuid>/logs')
class RepositoryBuildLogs(RepositoryParamResource):
""" Resource for loading repository build logs. """
@require_repo_write
@ -148,3 +149,34 @@ class RepositoryBuildLogs(RepositoryParamResource):
})
return response_obj
@resource('/v1/filedrop/')
class FileDropResource(ApiResource):
""" Custom verb for setting up a client side file transfer. """
schemas = {
'FileDropRequest': {
'id': 'FileDropRequest',
'type': 'object',
'description': 'Description of the file that the user wishes to upload.',
'required': True,
'properties': {
'mimeType': {
'type': 'string',
'description': 'Type of the file which is about to be uploaded',
'required': True,
},
},
},
}
@nickname('getFiledropUrl')
@validate_json_request('FileDropRequest')
def post(self):
""" Request a URL to which a file may be uploaded. """
mime_type = request.get_json()['mimeType']
(url, file_id) = user_files.prepare_for_drop(mime_type)
return {
'url': url,
'file_id': file_id
}