Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 8 additions & 13 deletions banter/crucible.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

from . import dict2xml, utils


class Crucible(object):
def __init__(self, baseurl):
self.baseurl = baseurl
Expand All @@ -16,8 +17,7 @@ def get_auth_token(self, username, password):
return None
return response.json()['token']

@staticmethod
def get_auth_token_request(username, password):
def get_auth_token_request(self, username, password):
return {
'method': 'GET',
'url': '/rest-service/auth-v1/login',
Expand All @@ -32,19 +32,17 @@ def create_review(self, token, **kwargs):
request['data'] = self.prepare_xml_payload(request['data'])
return self.make_request(request)

@staticmethod
def get_create_review_request(token, **kwargs):
def get_create_review_request(self, token, **kwargs):
return {
'method': 'POST',
'url': '/rest-service/reviews-v1',
'params': {
'FEAUTH': token
},
'data': Crucible.get_create_review_payload(**kwargs)
'data': self.get_create_review_payload(**kwargs)
}

@staticmethod
def get_create_review_payload(**kwargs):
def get_create_review_payload(self, **kwargs):
reviewData = {
'allowReviewersToJoin': kwargs['allow_reviewers_to_join'],
'author': {'userName': kwargs['author']},
Expand All @@ -68,8 +66,7 @@ def add_reviewers(self, token, review_id, reviewers):
request = self.get_add_reviewers_request(token, review_id, reviewers)
return self.make_request(request)

@staticmethod
def get_add_reviewers_request(token, review_id, reviewers):
def get_add_reviewers_request(self, token, review_id, reviewers):
return {
'method': 'POST',
'url': '/rest-service/reviews-v1/' + review_id + '/reviewers',
Expand All @@ -79,14 +76,12 @@ def get_add_reviewers_request(token, review_id, reviewers):
'data': ','.join(reviewers)
}

@staticmethod
def prepare_xml_payload(data):
def prepare_xml_payload(self, data):
result = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
result += dict2xml.dict2xml(data)
return result

@staticmethod
def get_headers():
def get_headers(self):
return {
'content-type': 'application/xml',
'accept': 'application/json'
Expand Down