import os import requests from zope import component from ...utils import write_db_creds from ..ResultView import ResultView from ceo_common.interfaces import IConfig class CreateDatabaseResultView(ResultView): def show_result(self, resp: requests.Response): password = resp.json()['password'] db_type = self._model.db_type db_type_name = 'MySQL' if db_type == 'mysql' else 'PostgreSQL' db_host = component.getUtility(IConfig).get(f'{db_type}_host') user_dict = self._model.user_dict username = user_dict['uid'] filename = os.path.join(user_dict['home_directory'], f"ceo-{db_type}-info") wrote_to_file = write_db_creds( filename, user_dict, password, db_type, db_host) self._add_text(f'{db_type_name} database created.', center=True) self._add_text() self._add_text((f'''Connection Information: Database: {username} Username: {username} Password: {password} Host: {db_host}''')) self._add_text() if wrote_to_file: self._add_text(f"These settings have been written to {filename}.") else: self._add_text(f"We were unable to write these settings to {filename}.")