diff --git a/src/access.py b/src/access.py index c35aac0..f96971f 100644 --- a/src/access.py +++ b/src/access.py @@ -23,19 +23,24 @@ class Access: refreshing = Event() - def __init__(self): - self.read_credentials() + def __init__(self, url): + """ + + :param url: str, url received from queue message, if field apiURL exists + else None + """ + self.set_credentials(url) self.get_token() self.refreshing.set() - def read_credentials(self): + def set_credentials(self, url): folder_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) config_path = os.path.join(folder_path, "config/api_config.json") with open(config_path, "r") as f: params = json.load(f) self.refreshing.clear() - self.url = params['url'] + self.url = url or params['url'] self.username = params['username'] self.password = params['password'] self.refreshing.set() diff --git a/src/consumer.py b/src/consumer.py index f39b9c3..019a6be 100644 --- a/src/consumer.py +++ b/src/consumer.py @@ -42,14 +42,15 @@ def convert_book(book_id, access, logger): # print('Book has been proceeded.') -def callback(ch, method, properties, body, access, logger): +def callback(ch, method, properties, body, logger): print(f'Message: {body}.') logger.info(f'Message: {body}.') try: data = json.loads(body) + api_url = data['apiURL'] if 'apiURL' in data else None params = { 'book_id': data['id'], - 'access': access, + 'access': Access(url=api_url), 'logger': logger } @@ -114,10 +115,9 @@ if __name__ == '__main__': logger.log(logging.ERROR, f'Queue {conf_param["queue"]} is not declared.') raise exc - acs = Access() channel.basic_consume(queue=conf_param['queue'], auto_ack=True, - on_message_callback=partial(callback, access=acs, logger=logger)) + on_message_callback=partial(callback, logger=logger)) logger.info('Connection has been established.') print('Waiting for messages...') logger.info('Waiting for messages...')