def organization(self, name) -> Organization: if name in self._organizations: return self._organizations[name] org = Organization(name) oj = self.json["organizations"][name] if "server_jira" in oj: oj_jira = oj["server_jira"] org.set_jira( Jira(oj_jira["url"], oj_jira["username"], oj_jira["password"])) if "server_confluence" in oj: oj_confluence = oj["server_confluence"] org.set_confluence( Confluence( oj_confluence["url"], oj_confluence["username"], oj_confluence["password"], oj_confluence["global_identifier"], oj_confluence["name"], )) if "server_phabricator" in oj: oj_phabricator = oj["server_phabricator"] org.set_phabricator( Phabricator( oj_phabricator["url"], oj_phabricator["user_phid"], oj_phabricator["token"], )) if "server_calendar" in oj: oj_cal = oj["server_calendar"] org.set_calendar( CalDAV(oj_cal["url"], oj_cal["username"], oj_cal["password"])) if "server_badgebox" in oj: oj_badge = oj["server_badgebox"] org.set_badgebox( BadgeBox(oj_badge["username"], oj_badge["password"])) if "server_smtp" in oj: oj_smtp = oj["server_smtp"] org.set_smtp( SMTP( oj_smtp["address"], oj_smtp["port"], oj_smtp["username"], oj_smtp["password"], oj_smtp["default_from_address"], oj_smtp["html_signature"], )) self._organizations[name] = org return org