예제 #1
0
    def send_letter_image(self, image_data, image_type, base64encoded=True):
        """ Sends an image of a Letter to Onramp U.S. Image Upload Service.
        See http://developer.compassion.com/docs/read/compassion_connect2/
            service_catalog/Image_Submission

        Returns the uploaded image URL.
        """
        content_type = ""
        if image_type == "pdf":
            content_type = "application"
        else:
            content_type = "image"
        headers = {f"Content-type": f"{content_type}/{image_type}"}
        params = {"doctype": "s2bletter"}
        url = self._connect_url + "images/documents"
        OnrampConnector.log_message("POST",
                                    url,
                                    headers,
                                    message="{image binary data not shown}")
        if base64encoded:
            data = base64.b64decode(image_data)
        else:
            data = image_data
        r = self._session.post(url, params=params, headers=headers, data=data)
        status = r.status_code
        if status == 201:
            letter_url = r.text
        else:
            raise UserError(_("[%s] %s") % (str(r.status_code), r.text))
        return letter_url
예제 #2
0
    def send_letter_image(self, image_data, image_type, base64encoded=True):
        """ Sends an image of a Letter to Onramp U.S. Image Upload Service.
        See http://developer.compassion.com/docs/read/compassion_connect2/
            service_catalog/Image_Submission

        Returns the uploaded image URL.
        """
        headers = {'Content-type': 'image/{0}'.format(image_type)}
        params = {'doctype': 's2bletter'}
        url = self._connect_url + 'images/documents'
        OnrampConnector.log_message('POST',
                                    url,
                                    headers,
                                    message='{image binary data not shown}')
        if base64encoded:
            data = base64.b64decode(image_data)
        else:
            data = image_data
        r = self._session.post(url, params=params, headers=headers, data=data)
        status = r.status_code
        if status == 201:
            letter_url = r.text
        else:
            raise UserError(_('[%s] %s') % (r.status_code, r.text))
        return letter_url
예제 #3
0
 def get_letter_image(self, letter_url, img_type='jpeg', pages=0, dpi=96):
     """ Calls Letter Image Service from Onramp U.S. and get the data
     http://developer.compassion.com/docs/read/compassion_connect2/
     service_catalog/Image_Retrieval
     """
     params = {'format': img_type, 'pg': pages, 'dpi': dpi}
     OnrampConnector.log_message('GET', letter_url)
     r = self._session.get(letter_url, params=params)
     letter_data = None
     if r.status_code == 200:
         letter_data = base64.b64encode(r.content)
     return letter_data
예제 #4
0
    def test_message(self, test_message):
        """ Sends a message to any onramp.
        :param test_message (onramp.simulator record): the message to send
        """
        headers = {
            "Content-type": "application/json",
            "x-cim-MessageType": test_message.message_type_url,
            "x-cim-FromAddress": "CHTest",
            "x-cim-ToAddress": "CH",
        }
        url = test_message.server_url
        body = test_message.body_json

        OnrampConnector.log_message("POST", url, headers, body)
        r = self._session.post(url,
                               headers=headers,
                               json=simplejson.loads(body))
        status = r.status_code
        OnrampConnector.log_message(status, "RESULT", message=r.text)
        test_message.write({"result": r.text, "result_code": r.status_code})
    def test_message(self, test_message):
        """ Sends a message to any onramp.
        :param test_message (onramp.simulator record): the message to send
        """
        headers = {
            'Content-type': 'application/json',
            'x-cim-MessageType': test_message.message_type_url,
            'x-cim-FromAddress': 'CHTest',
            'x-cim-ToAddress': 'CH'
        }
        url = test_message.server_url
        body = test_message.body_json

        OnrampConnector.log_message('POST', url, headers, body)
        r = self._session.post(url, headers=headers,
                               json=simplejson.loads(body))
        status = r.status_code
        OnrampConnector.log_message(status, 'RESULT', message=r.text)
        test_message.write({
            'result': r.text,
            'result_code': r.status_code
        })