class Adapter:
    def __init__(self, input):
        self.id = input.get('id', '1')
        self.bridge = Bridge()
        self.create_request()

    def create_request(self):
        try:
            data = SpaceX().get_launch_info()
            self.result_success(data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': data["launch_time"],
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
Exemple #2
0
class Adapter:
    base_url = 'https://hcaptcha.com/siteverify'
    token = None
    secret_key = None

    def __init__(self, input, secret_key: str = None):
        self.id = input.get('id', '1')
        self.secret_key = secret_key
        self.request_data = input.get('data')
        if self.validate_request_data() and self.secret_key:
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error(
                'No data or API secret key provided for the adapter')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def set_params(self):
        self.token = self.request_data.get('token')

    def create_request(self):
        try:
            data = f'response={self.token}&secret={self.secret_key}'
            headers = {'Content-Type': 'application/x-www-form-urlencoded'}
            response = self.bridge.post_request(self.base_url,
                                                data=data,
                                                headers=headers)
            data = response.json()
            print('Response: ', data)
            self.result = data['success']
            data['result'] = self.result
            self.result_success(data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
Exemple #3
0
class Adapter:
    base_url = 'https://sandbox.swift.com/swift-apitracker/v4/payments'    # '/{uetr}/status' needs to be appended
    from_params = ['ID', 'UETR', 'transaction']
    action_params = ['cancellation', 'status', 'transactions']
    oauth_token = ['oauth', 'token', 'oauth_token']

    def __init__(self, input):
        self.id = input.get('id', '1')
        self.request_data = input.get('data')
        self.result_json = "N/A"
        if self.validate_request_data():
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def set_params(self):
        for param in self.from_params:
            self.from_param = self.request_data.get(param)
            if self.from_param is not None:
                break
        for param in self.action_params:
            self.to_param = self.request_data.get(param)
            if self.to_param is not None:
                break
        for param in self.oauth_token:
            self.oauth = self.request_data.get(param)
            if self.oauth is not None:
                break

    def create_request(self):
        try:
            headers = {"Authorization": "Basic "+self.oauth}
            self.base_url += "/"+self.from_param+"/"+self.to_param
            response = self.bridge.request(self.base_url, headers)
            data = response.json()
            self.result_json = data

            switcher = {
                "transactions": "transaction_status",
                "cancellation": "cancellation_reason_information",
                "status": "transaction_status"
            }
            print("switch case: "+switcher.get(self.to_param, ""))
            self.result = data[switcher.get(self.to_param, "")]

            data['result'] = self.result
            self.result_success(data)

        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'data': self.result_json,
            'statusCode': 500,
        }
Exemple #4
0
class Adapter:
    base_url = 'https://min-api.cryptocompare.com/data/price'
    from_params = ['base', 'from', 'coin']
    to_params = ['quote', 'to', 'market']

    def __init__(self, input):
        self.id = input.get('id', '1')
        self.request_data = input.get('data')
        if self.validate_request_data():
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def set_params(self):
        for param in self.from_params:
            self.from_param = self.request_data.get(param)
            if self.from_param is not None:
                break
        for param in self.to_params:
            self.to_param = self.request_data.get(param)
            if self.to_param is not None:
                break

    def create_request(self):
        try:
            params = {
                'fsym': self.from_param,
                'tsyms': self.to_param,
            }
            response = self.bridge.request(self.base_url, params)
            data = response.json()
            self.result = data[self.to_param]
            data['result'] = self.result
            self.result_success(data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
Exemple #5
0
class Adapter:

    def __init__(self, input):
        self.base_url = "https://api.openai.com/v1/engines/davinci/completions"
        self.id = input.get('id', '1')
        self.request_data = input.get('data')
        if self.validate_request_data():
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def set_params(self):
        self.prompt = self.request_data.get("prompt")

    def create_request(self):
        print(pre_prompt + self.prompt)
        try:
            headers={
    "Authorization": f"Bearer {config.API_KEY}",
    "Content-Type": 'application/json'
  }
            json={
                "prompt": pre_prompt + self.prompt,
                "max_tokens": 40,
                "temperature": 0.5,
                "top_p": 1,
                "n": 1,
                "stop": ["#"]
            }
            response = self.bridge.request(self.base_url, json=json, headers=headers)
            data = response.json()['choices'][0]['text']
            if ':' in data:
                data = data.split(':')[1][1:]
            hex_data = binascii.hexlify(data.encode('utf8'))
            bytes_data = '0x' + str(hex_data)[2:-1]
            self.result = bytes_data
            self.result_success(bytes_data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
class Adapter:
    base_url = 'http://kibana.log4analytics.com:9080/1.0/identifiers/'
    from_params = ['DID_userid']
    to_params = ['quote', 'to', 'market']

    def __init__(self, input):
        self.id = input.get('id', '1')
        self.request_data = input.get('data')
        if self.validate_request_data():
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def set_params(self):
        for param in self.from_params:
            self.from_param = self.request_data.get(param)
            if self.from_param is not None:
                break
        for param in self.to_params:
            self.to_param = self.request_data.get(param)
            if self.to_param is not None:
                break

    def create_request(self):
        try:
            params = {
                'fsym': self.from_param,
                'tsyms': self.to_param,
            }
            print(self.from_param)
            self.base_url = self.base_url + self.from_param
            print(self.base_url)
            response = self.bridge.request(self.base_url, params)
            data = response.json()
            self.result = data['didDocument']['id']
            data['result'] = self.result
            self.result_success(data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
Exemple #7
0
class Adapter:
    base_url = FRAXSES_API_GATEWAY

    def __init__(self, input):
        self.id = input.get('id', '1')
        self.request_data = input.get('data')
        if self.validate_request_data():
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        if self.request_data.get('action') is None:
            return False
        return True

    def set_params(self):
        self.param = {}
        self.action = self.request_data.get('action')
        self.params = {
            k: v
            for k, v in self.request_data.items() if k != 'action'
        }
        for key, value in self.params.items():
            self.param[value] = self.request_data.get(key)
            if self.param is None:
                break

    def create_request(self):
        try:
            token = usr_aut(gateway=FRAXSES_API_GATEWAY,
                            username=FRAXSES_USERNAME,
                            password=FRAXSES_PASSWORD)
            logging.info('Token success, token is ' + str(token))
            if token:
                token = token['records'][0]['tok']
                params = {
                    "token": token,
                    "action": self.action,
                    "parameters": self.params
                }
                response = self.bridge.request(self.base_url, params)
                logging.info(params)
                data = response.json()
                logging.info(data)
                self.result = data['result'][0]['serviceresult']['id']
                self.result_success(
                    data=data['result'][0]['serviceresult']['response'],
                    job_run_id=data['result'][0]['serviceresult']['id'])
            else:
                self.result_error(
                    'Fraxses gateway failed to authenticate, token is ' +
                    str(token))
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data, job_run_id):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': 1,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
Exemple #8
0
class Adapter:
    id_params = ['id', 'nft', '_id']

    def __init__(self, input, image_checker, image_manager):
        self.image_cheker = image_checker
        self.image_manager = image_manager
        self.id = input.get('id', '1')
        self.result = ""  #kostil
        self.request_data = input.get('data')
        if self.validate_request_data():
            self.bridge = Bridge()
            self.set_params()
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def set_params(self):
        for param in self.id_params:
            self.id_params = self.request_data.get(param)
            if self.id_params is not None:
                break

    def create_request(self):
        try:
            #params = {
            #    'fsym': self.from_param,
            #    'tsyms': self.to_param,
            #}
            #response = self.bridge.request(self.base_url, params)

            nftID = int(self.id_params)
            contract = get_contract()

            loop = asyncio.new_event_loop()
            asyncio.set_event_loop(loop)
            data_ipfs_url = contract.functions.uri(nftID).call()
            task = asyncio.gather(
                download_image_data(data_ipfs_url, nftID, save_to_disk=False))
            loop.run_until_complete(task)

            task_result = task.result()
            image_string, description = task_result[0]
            nparr = np.fromstring(image_string, np.uint8)
            img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
            img = Image.fromarray(img)

            self.image_manager.register_new_images()
            scores, descriptions = self.image_cheker.find_most_simular_images(
                img)

            if int(descriptions[0]) == nftID:
                score = scores[1]
            else:
                score = scores[0]

            score = int(score * 100)

            #data = response.json()
            #self.result = data[self.to_param]
            data = {
                'score': score,
                'detailed information': {
                    'scores': [*scores],
                    'descriptions': [*descriptions]
                }
            }
            self.result_success(data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }
Exemple #9
0
class Adapter:
    base_url = 'https://api.twitter.com/1.1/search/tweets.json'

    def __init__(self, input):
        self.id = input.get('id', '1')
        self.request_data = input.get('data')
        if self.validate_request_data():
            self.bridge = Bridge()
            self.hashtag = self.request_data.get('hashtag', '')
            self.username = self.request_data.get('username', '')
            self.create_request()
        else:
            self.result_error('No data provided')

    def validate_request_data(self):
        if self.request_data is None:
            return False
        if self.request_data == {}:
            return False
        return True

    def create_request(self):
        try:
            if not self.hashtag:
                raise Exception('No hashtag provided')
            params = {
                'q': '#' + self.hashtag,
            }
            headers = {
                "Authorization": "Bearer " + os.environ.get('BEARER_TOKEN')
            }
            response = self.bridge.request(self.base_url,
                                           params,
                                           headers=headers)
            data = response.json()
            self.result = ''
            if self.username:
                for status in data['statuses']:
                    if status['user']['screen_name'] == self.username:
                        self.result = self.username
                        break
            elif data['statuses']:
                self.result = data['statuses'][0]['user']['screen_name']

            data['result'] = self.result
            self.result_success(data)
        except Exception as e:
            self.result_error(e)
        finally:
            self.bridge.close()

    def result_success(self, data):
        self.result = {
            'jobRunID': self.id,
            'data': data,
            'result': self.result,
            'statusCode': 200,
        }

    def result_error(self, error):
        self.result = {
            'jobRunID': self.id,
            'status': 'errored',
            'error': f'There was an error: {error}',
            'statusCode': 500,
        }