def add_key(cube, ex_id, key, secret, passphrase): app.logger.debug('[%s] Adding keys' % (cube)) # Add initial transactions to database if add_balances(ex_id, key, secret, passphrase, cube): try: # Encrypt keys and add connection conn = Connection( user_id=cube.user_id, cube_id=cube.id, exchange_id=ex_id, key=e(key), secret=e(secret), passphrase=e(passphrase) ) conn.save_to_db() app.logger.info('[%s] Added API key for Ex_ID: %s' % (cube, ex_id)) message = 'API keys added successfully. Exchange connection is live!' cube.log_user_action("save_api_keys") cube.update_charts = 1 cube.save_to_db() return message except Exception as error: app.logger.debug('[%s] Trouble adding API key for Ex_ID: %s' % (cube, ex_id)) app.logger.debug(error) remove_balances(ex_id, cube) db_session.delete(cube) db_session.commit() raise else: remove_balances(ex_id, cube) db_session.delete(cube) db_session.commit() message = 'There was a problem adding your API keys.' return message