109 |
109 |
url = self.webservice_url + '/invoices/'
|
110 |
110 |
if past:
|
111 |
111 |
url += 'history'
|
112 |
|
items = self.get_url(context['request'], url,
|
113 |
|
NameID=mellon['name_id_content']).json()
|
|
112 |
items = requests.get(self.signed_url(context['request'], url,
|
|
113 |
NameID=mellon['name_id_content'])).json()
|
114 |
114 |
if items.get('data'):
|
115 |
115 |
return [build_remote_item(item, self) for item in items.get('data')]
|
116 |
116 |
return []
|
... | ... | |
124 |
124 |
if hasattr(request, 'session') and request.session.get('mellon_session'):
|
125 |
125 |
mellon = request.session.get('mellon_session')
|
126 |
126 |
url = self.webservice_url + '/invoice/%s/pdf' % item_id
|
127 |
|
return self.get_url(request, url, NameID=mellon['name_id_content'])
|
|
127 |
return requests.get(self.signed_url(request, url,
|
|
128 |
NameID=mellon['name_id_content']))
|
128 |
129 |
raise PermissionDenied
|
129 |
130 |
|
130 |
131 |
def get_item(self, request, item):
|
... | ... | |
134 |
135 |
if hasattr(request, 'session') and request.session.get('mellon_session'):
|
135 |
136 |
mellon = request.session.get('mellon_session')
|
136 |
137 |
url = self.webservice_url + '/invoice/%s/' % item
|
137 |
|
item = self.get_url(request, url,
|
138 |
|
NameID=mellon['name_id_content']).json()
|
|
138 |
item = requests.get(self.signed_url(request, url,
|
|
139 |
NameID=mellon['name_id_content'])).json()
|
139 |
140 |
return build_remote_item(item.get('data'), self)
|
140 |
141 |
return {}
|
141 |
142 |
|
142 |
|
def pay_item(self, request, item):
|
143 |
|
url = self.webservice_url + '/invoice/%s/pay/' % item
|
144 |
|
return self.get_url(request, url)
|
|
143 |
def pay_item(self, request, item, transaction_id, transaction_date):
|
|
144 |
url = self.webservice_url + '/invoice/pay/'
|
|
145 |
data = {'invoice_id': item, 'transaction_id': transaction_id,
|
|
146 |
'transaction_date': transaction_date.isoformat()}
|
|
147 |
return requests.post(self.signed_url(request, url), data=json.dumps(data)).json()
|
145 |
148 |
|
146 |
149 |
def as_api_dict(self):
|
147 |
150 |
return {'slug': self.slug,
|
148 |
151 |
'label': self.label,
|
149 |
152 |
'description': self.description}
|
150 |
153 |
|
151 |
|
def get_url(self, request, url, **params):
|
|
154 |
def signed_url(self, request, url, **params):
|
152 |
155 |
orig = request.get_host()
|
153 |
156 |
url += '?orig=' + orig +'&' + urllib.urlencode(params)
|
154 |
157 |
signature_key = settings.LINGO_SIGNATURE_KEY
|
155 |
|
url = sign_url(url, key=signature_key)
|
156 |
|
return requests.get(url)
|
|
158 |
return sign_url(url, key=signature_key)
|
157 |
159 |
|
158 |
160 |
|
159 |
161 |
class BasketItem(models.Model):
|