68 std::string subject_prefix;
69 std::optional<boost::uuids::uuid> environment_id;
70 std::optional<std::string> environment_name;
79 const std::string& master_password);
84 void delete_folder(
const boost::uuids::uuid&
id);
85 std::vector<domain::folder> get_all_folders();
86 std::optional<domain::folder> get_folder(
const boost::uuids::uuid&
id);
87 std::vector<domain::folder> get_root_folders();
88 std::vector<domain::folder> get_child_folders(
const boost::uuids::uuid& parent_id);
93 void delete_tag(
const boost::uuids::uuid&
id);
94 std::vector<domain::tag> get_all_tags();
95 std::optional<domain::tag> get_tag(
const boost::uuids::uuid&
id);
96 std::optional<domain::tag> get_tag_by_name(
const std::string& name);
101 void delete_environment(
const boost::uuids::uuid&
id);
102 std::vector<domain::environment> get_all_environments();
103 std::optional<domain::environment> get_environment(
const boost::uuids::uuid&
id);
104 std::vector<domain::environment> get_environments_in_folder(
105 const std::optional<boost::uuids::uuid>& folder_id);
108 void add_tag_to_environment(
const boost::uuids::uuid& environment_id,
109 const boost::uuids::uuid& tag_id);
110 void remove_tag_from_environment(
const boost::uuids::uuid& environment_id,
111 const boost::uuids::uuid& tag_id);
112 std::vector<domain::tag> get_tags_for_environment(
113 const boost::uuids::uuid& environment_id);
114 std::vector<domain::environment> get_environments_with_tag(
115 const boost::uuids::uuid& tag_id);
120 const std::optional<std::string>& password);
121 void delete_connection(
const boost::uuids::uuid&
id);
122 std::vector<domain::connection> get_all_connections();
123 std::optional<domain::connection> get_connection(
const boost::uuids::uuid&
id);
124 std::vector<domain::connection> get_connections_in_folder(
125 const std::optional<boost::uuids::uuid>& folder_id);
130 std::string
get_password(
const boost::uuids::uuid& connection_id);
133 void add_tag_to_connection(
const boost::uuids::uuid& connection_id,
134 const boost::uuids::uuid& tag_id);
135 void remove_tag_from_connection(
const boost::uuids::uuid& connection_id,
136 const boost::uuids::uuid& tag_id);
137 std::vector<domain::tag> get_tags_for_connection(
138 const boost::uuids::uuid& connection_id);
139 std::vector<domain::connection> get_connections_with_tag(
140 const boost::uuids::uuid& tag_id);
176 repository::tag_repository tag_repo_;
177 repository::connection_repository conn_repo_;
178 repository::connection_tag_repository conn_tag_repo_;
179 repository::environment_repository env_repo_;
180 repository::environment_tag_repository env_tag_repo_;
181 std::string master_password_;