def send_project(self, project, clear_cache=True):
"""
post request to send a project to IRIDA via API
the project being sent requires a name that is at least
5 characters long
arguments:
project -- a Project object to be sent.
returns a dictionary containing the result of post request.
when post is successful the dictionary it returns will contain the same
name and projectDescription that was originally sent as well as
additional keys like createdDate and identifier.
when post fails then an error will be raised so return statement is
not even reached.
"""
if clear_cache:
self.cached_projects = None
json_res = {}
if len(project.get_name()) >= 5:
url = self.get_link(self.base_URL, "projects")
json_obj = json.dumps(project.get_dict())
headers = {
"headers": {
"Content-Type": "application/json"
}
}
response = self.session.post(url, json_obj, **headers)
if response.status_code == httplib.CREATED: # 201
json_res = json.loads(response.text)
else:
raise ProjectError("Error: " +
str(response.status_code) + " " +
response.text)
else:
raise ProjectError("Invalid project name: " +
project.get_name() +
". A project requires a name that must be " +
"5 or more characters.")
return json_res
评论列表
文章目录